diff --git a/Ghidra/Debug/Debugger-agent-gdb/certification.manifest b/Ghidra/Debug/Debugger-agent-gdb/certification.manifest
index 4e32539fa4..aaa7ad0026 100644
--- a/Ghidra/Debug/Debugger-agent-gdb/certification.manifest
+++ b/Ghidra/Debug/Debugger-agent-gdb/certification.manifest
@@ -2,5 +2,6 @@
##MODULE IP: JSch License
Module.manifest||GHIDRA||||END|
data/scripts/fallback_info_proc_mappings.gdb||GHIDRA||||END|
+data/scripts/fallback_maintenance_info_sections.gdb||GHIDRA||||END|
data/scripts/getpid-linux-i386.gdb||GHIDRA||||END|
data/scripts/wine32_info_proc_mappings.gdb||GHIDRA||||END|
diff --git a/Ghidra/Debug/Debugger-agent-gdb/data/scripts/fallback_maintenance_info_sections.gdb b/Ghidra/Debug/Debugger-agent-gdb/data/scripts/fallback_maintenance_info_sections.gdb
new file mode 100644
index 0000000000..8398a8b023
--- /dev/null
+++ b/Ghidra/Debug/Debugger-agent-gdb/data/scripts/fallback_maintenance_info_sections.gdb
@@ -0,0 +1,4 @@
+define maintenance info sections
+echo Exec file: `name_of_executable', file type elf64-x86-64. \n
+echo [0] 0x0->0xFFFFFFFFFFFFFFFF at 0x00000000: .text ALLOC LOAD READWRITE CODE HAS_CONTENTS
+end
diff --git a/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/mdmp/MemoryRange.java b/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/mdmp/MemoryRange.java
index 157074e6ea..0fbe6a492f 100644
--- a/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/mdmp/MemoryRange.java
+++ b/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/mdmp/MemoryRange.java
@@ -27,7 +27,7 @@ public class MemoryRange implements StructConverter {
public final static String NAME = "MINIDUMP_MEMORY_RANGE";
private long startOfMemoryRange;
- private int dataSize;
+ private long dataSize;
private int RVA;
private DumpFileReader reader;
@@ -44,7 +44,7 @@ public class MemoryRange implements StructConverter {
reader.setPointerIndex(index);
setStartOfMemoryRange(reader.readNextLong());
- setDataSize(reader.readNextInt());
+ setDataSize(reader.readNextUnsignedInt());
setRVA(reader.readNextInt());
}
@@ -52,6 +52,7 @@ public class MemoryRange implements StructConverter {
/**
* @see ghidra.app.util.bin.StructConverter#toDataType()
*/
+ @Override
public DataType toDataType() throws DuplicateNameException {
StructureDataType struct = new StructureDataType(NAME, 0);
@@ -72,11 +73,11 @@ public class MemoryRange implements StructConverter {
this.startOfMemoryRange = startOfMemoryRange;
}
- public int getDataSize() {
+ public long getDataSize() {
return dataSize;
}
- public void setDataSize(int dataSize) {
+ public void setDataSize(long dataSize) {
this.dataSize = dataSize;
}
diff --git a/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/mdmp/Module.java b/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/mdmp/Module.java
index 8c83415084..1f10963953 100644
--- a/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/mdmp/Module.java
+++ b/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/mdmp/Module.java
@@ -27,7 +27,7 @@ public class Module implements StructConverter {
public final static String NAME = "MINIDUMP_MODULE";
private long baseOfImage;
- private int sizeOfImage;
+ private long sizeOfImage;
private int checkSum;
private int timeDateStamp;
private int moduleNameRVA;
@@ -70,7 +70,7 @@ public class Module implements StructConverter {
reader.setPointerIndex(index);
setBaseOfImage(reader.readNextLong());
- setSizeOfImage(reader.readNextInt());
+ setSizeOfImage(reader.readNextUnsignedInt());
setCheckSum(reader.readNextInt());
setTimeDateStamp(reader.readNextInt());
setModuleNameRVA(reader.readNextInt());
@@ -113,6 +113,7 @@ public class Module implements StructConverter {
/**
* @see ghidra.app.util.bin.StructConverter#toDataType()
*/
+ @Override
public DataType toDataType() throws DuplicateNameException {
StructureDataType struct = new StructureDataType(NAME, 0);
@@ -164,11 +165,11 @@ public class Module implements StructConverter {
this.baseOfImage = baseOfImage;
}
- public int getSizeOfImage() {
+ public long getSizeOfImage() {
return sizeOfImage;
}
- public void setSizeOfImage(int sizeOfImage) {
+ public void setSizeOfImage(long sizeOfImage) {
this.sizeOfImage = sizeOfImage;
}
diff --git a/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/mdmp/Thread.java b/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/mdmp/Thread.java
index 048cc397d8..5430f2939d 100644
--- a/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/mdmp/Thread.java
+++ b/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/mdmp/Thread.java
@@ -33,7 +33,7 @@ public class Thread implements StructConverter {
private int priority;
private long teb;
private long stackStartOfMemoryRange;
- private int stackDataSize;
+ private long stackDataSize;
private int stackRVA;
private int contextDataSize;
private int contextRVA;
@@ -57,7 +57,7 @@ public class Thread implements StructConverter {
setPriority(reader.readNextInt());
setTeb(reader.readNextLong());
setStackStartOfMemoryRange(reader.readNextLong());
- setStackDataSize(reader.readNextInt());
+ setStackDataSize(reader.readNextUnsignedInt());
setStackRVA(reader.readNextInt());
setContextDataSize(reader.readNextInt());
setContextRVA(reader.readNextInt());
@@ -67,6 +67,7 @@ public class Thread implements StructConverter {
/**
* @see ghidra.app.util.bin.StructConverter#toDataType()
*/
+ @Override
public DataType toDataType() throws DuplicateNameException {
StructureDataType struct = new StructureDataType(NAME, 0);
@@ -149,11 +150,11 @@ public class Thread implements StructConverter {
this.stackStartOfMemoryRange = stackStartOfMemoryRange;
}
- public int getStackDataSize() {
+ public long getStackDataSize() {
return stackDataSize;
}
- public void setStackDataSize(int stackDataSize) {
+ public void setStackDataSize(long stackDataSize) {
this.stackDataSize = stackDataSize;
}
diff --git a/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/mdmp/ThreadEx.java b/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/mdmp/ThreadEx.java
index 5f3086c008..230f35ddfc 100644
--- a/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/mdmp/ThreadEx.java
+++ b/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/mdmp/ThreadEx.java
@@ -33,7 +33,7 @@ public class ThreadEx implements StructConverter {
private int priority;
private long teb;
private long stackStartOfMemoryRange;
- private int stackDataSize;
+ private long stackDataSize;
private int stackRVA;
private int contextDataSize;
private int contextRVA;
@@ -60,7 +60,7 @@ public class ThreadEx implements StructConverter {
setPriority(reader.readNextInt());
setTeb(reader.readNextLong());
setStackStartOfMemoryRange(reader.readNextLong());
- setStackDataSize(reader.readNextInt());
+ setStackDataSize(reader.readNextUnsignedInt());
setStackRVA(reader.readNextInt());
setContextDataSize(reader.readNextInt());
setContextRVA(reader.readNextInt());
@@ -73,6 +73,7 @@ public class ThreadEx implements StructConverter {
/**
* @see ghidra.app.util.bin.StructConverter#toDataType()
*/
+ @Override
public DataType toDataType() throws DuplicateNameException {
StructureDataType struct = new StructureDataType(NAME, 0);
@@ -161,11 +162,11 @@ public class ThreadEx implements StructConverter {
this.stackStartOfMemoryRange = stackStartOfMemoryRange;
}
- public int getStackDataSize() {
+ public long getStackDataSize() {
return stackDataSize;
}
- public void setStackDataSize(int stackDataSize) {
+ public void setStackDataSize(long stackDataSize) {
this.stackDataSize = stackDataSize;
}
diff --git a/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/mdmp/UnloadedModule.java b/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/mdmp/UnloadedModule.java
index 4665b238c2..cbe1e441d5 100644
--- a/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/mdmp/UnloadedModule.java
+++ b/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/mdmp/UnloadedModule.java
@@ -27,7 +27,7 @@ public class UnloadedModule implements StructConverter {
public final static String NAME = "MINIDUMP_UNLOADED_MODULE";
private long baseOfImage;
- private int sizeOfImage;
+ private long sizeOfImage;
private int checkSum;
private int timeDateStamp;
private int moduleNameRVA;
@@ -46,7 +46,7 @@ public class UnloadedModule implements StructConverter {
reader.setPointerIndex(index);
setBaseOfImage(reader.readNextLong());
- setSizeOfImage(reader.readNextInt());
+ setSizeOfImage(reader.readNextUnsignedInt());
setCheckSum(reader.readNextInt());
setTimeDateStamp(reader.readNextInt());
setModuleNameRVA(reader.readNextInt());
@@ -56,6 +56,7 @@ public class UnloadedModule implements StructConverter {
/**
* @see ghidra.app.util.bin.StructConverter#toDataType()
*/
+ @Override
public DataType toDataType() throws DuplicateNameException {
StructureDataType struct = new StructureDataType(NAME, 0);
@@ -78,11 +79,11 @@ public class UnloadedModule implements StructConverter {
this.baseOfImage = baseOfImage;
}
- public int getSizeOfImage() {
+ public long getSizeOfImage() {
return sizeOfImage;
}
- public void setSizeOfImage(int sizeOfImage) {
+ public void setSizeOfImage(long sizeOfImage) {
this.sizeOfImage = sizeOfImage;
}
diff --git a/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/pagedump/KldrDataTableEntry.java b/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/pagedump/KldrDataTableEntry.java
index d9c3c5ef9f..26a881911e 100644
--- a/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/pagedump/KldrDataTableEntry.java
+++ b/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/pagedump/KldrDataTableEntry.java
@@ -34,7 +34,7 @@ public class KldrDataTableEntry implements StructConverter {
private long NonPagedDebugInfo;
private long DllBase;
private long EntryPoint;
- private int SizeOfImage;
+ private long SizeOfImage;
private long FullDllName;
private long BaseDllName;
private int Flags;
@@ -69,7 +69,7 @@ public class KldrDataTableEntry implements StructConverter {
setNonPagedDebugInfo(reader.readNextPointer());
setDllBase(reader.readNextPointer());
setEntryPoint(reader.readNextPointer());
- setSizeOfImage(reader.readNextInt());
+ setSizeOfImage(reader.readNextUnsignedInt());
reader.readNextInt();
reader.readNextPointer();
setFullDllName(reader.readNextPointer());
@@ -89,6 +89,7 @@ public class KldrDataTableEntry implements StructConverter {
/**
* @see ghidra.app.util.bin.StructConverter#toDataType()
*/
+ @Override
public DataType toDataType() throws DuplicateNameException {
StructureDataType struct = new StructureDataType(NAME, 0);
@@ -152,11 +153,11 @@ public class KldrDataTableEntry implements StructConverter {
EntryPoint = entryPoint;
}
- public int getSizeOfImage() {
+ public long getSizeOfImage() {
return SizeOfImage;
}
- public void setSizeOfImage(int sizeOfImage) {
+ public void setSizeOfImage(long sizeOfImage) {
SizeOfImage = sizeOfImage;
}
diff --git a/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/pagedump/Pagedump.java b/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/pagedump/Pagedump.java
index d3af56676c..fc7b1e3f0c 100644
--- a/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/pagedump/Pagedump.java
+++ b/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/pagedump/Pagedump.java
@@ -128,7 +128,7 @@ public class Pagedump extends DumpFile {
is32Bit = header.is32Bit();
isPAE = header.getPaeEnabled() != 0;
- int hdrLen = header.toDataType().getLength();
+ long hdrLen = header.toDataType().getLength();
addInteriorAddressObject("DumpHeader", 0, 0L, hdrLen);
data.add(new DumpData(0, header.toDataType()));
@@ -143,7 +143,7 @@ public class Pagedump extends DumpFile {
case DUMP_TYPE_BITMAP_FULL:
case DUMP_TYPE_BITMAP_KERNEL:
int signature = reader.readInt(hdrLen);
- int offset = hdrLen;
+ long offset = hdrLen;
switch (signature) {
case SIG_SUMMARY:
case SIG_FULL:
@@ -175,7 +175,7 @@ public class Pagedump extends DumpFile {
addInteriorAddressObject("DumpHeader", hdrLen, hdrLen,
triage.getSizeOfDump());
- int next = hdrLen + triage.getSizeOfDump();
+ long next = hdrLen + triage.getSizeOfDump();
addInteriorAddressObject("Unknown", next,
next, reader.length() - next);
@@ -424,7 +424,7 @@ public class Pagedump extends DumpFile {
continue;
}
Long addr = pfnToVA.get(pfnx);
- addInteriorAddressObject(DumpFileLoader.MEMORY, fileOffset(pfnx), addr, 0x1000);
+ addInteriorAddressObject(DumpFileLoader.MEMORY, fileOffset(pfnx), addr, 0x1000L);
monitor.setProgress(count++);
}
/*
@@ -462,6 +462,7 @@ public class Pagedump extends DumpFile {
return Integer.toHexString(header.getMachineImageType());
}
+ @Override
public void analyze(TaskMonitor monitor) {
boolean analyzeEmbeddedObjects =
OptionUtils.getBooleanOptionValue(ANALYZE_EMBEDDED_OBJECTS_OPTION_NAME,
@@ -611,9 +612,10 @@ public class Pagedump extends DumpFile {
*/
/**
- * Get default Pagedump
loader options.
- * Includes {@link #DEBUG_DATA_PATH_OPTION_NAME} plus default {@link DumpFile} options
- * (see {@link DumpFile#getDefaultOptions(DumpFileReader)}).
+ * Get default Pagedump
loader options. Includes
+ * {@link #DEBUG_DATA_PATH_OPTION_NAME} plus default {@link DumpFile} options (see
+ * {@link DumpFile#getDefaultOptions(DumpFileReader)}).
+ *
* @param reader dump file reader
* @return default collection of Pagedump loader options
*/
diff --git a/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/pagedump/TriageDataBlock.java b/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/pagedump/TriageDataBlock.java
index ff0eb69bca..bbe52c9156 100644
--- a/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/pagedump/TriageDataBlock.java
+++ b/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/pagedump/TriageDataBlock.java
@@ -27,7 +27,7 @@ public class TriageDataBlock implements StructConverter {
private long address;
private int offset;
- private int size;
+ private long size;
private DumpFileReader reader;
private long index;
@@ -46,7 +46,7 @@ public class TriageDataBlock implements StructConverter {
setAddress(reader.readNextPointer());
setOffset(reader.readNextInt());
- setSize(reader.readNextInt());
+ setSize(reader.readNextUnsignedInt());
}
@@ -79,11 +79,11 @@ public class TriageDataBlock implements StructConverter {
this.offset = offset;
}
- public int getSize() {
+ public long getSize() {
return size;
}
- public void setSize(int size) {
+ public void setSize(long size) {
this.size = size;
}
diff --git a/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/pagedump/TriageDump.java b/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/pagedump/TriageDump.java
index 00255af9a6..a409ac84d6 100644
--- a/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/pagedump/TriageDump.java
+++ b/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/pagedump/TriageDump.java
@@ -26,7 +26,7 @@ public class TriageDump implements StructConverter {
public final static String NAME = "PAGEDUMP_TRIAGE";
private int servicePackBuild;
- private int sizeOfDump;
+ private long sizeOfDump;
private int validOffset;
private int contextOffset;
private int exceptionOffset;
@@ -75,7 +75,7 @@ public class TriageDump implements StructConverter {
reader.setPointerIndex(index);
setServicePackBuild(reader.readNextInt());
- setSizeOfDump(reader.readNextInt());
+ setSizeOfDump(reader.readNextUnsignedInt());
setValidOffset(reader.readNextInt());
setContextOffset(reader.readNextInt());
setExceptionOffset(reader.readNextInt());
@@ -156,11 +156,11 @@ public class TriageDump implements StructConverter {
this.servicePackBuild = servicePackBuild;
}
- public int getSizeOfDump() {
+ public long getSizeOfDump() {
return sizeOfDump;
}
- public void setSizeOfDump(int sizeOfDump) {
+ public void setSizeOfDump(long sizeOfDump) {
this.sizeOfDump = sizeOfDump;
}
diff --git a/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/userdump/Module.java b/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/userdump/Module.java
index 2e96608fdf..077d0bc787 100644
--- a/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/userdump/Module.java
+++ b/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/userdump/Module.java
@@ -27,7 +27,7 @@ public class Module implements StructConverter {
public final static String NAME = "MODULE_";
private long moduleBase;
- private int moduleSize;
+ private long moduleSize;
private int moduleNameLength;
private String moduleName;
@@ -45,7 +45,7 @@ public class Module implements StructConverter {
reader.setPointerIndex(index);
setModuleBase(reader.readNextPointer());
- setModuleSize(reader.readNextInt());
+ setModuleSize(reader.readNextUnsignedInt());
setModuleNameLength(reader.readNextInt());
setModuleName(reader.readNextAsciiString(getModuleNameLength()));
}
@@ -53,6 +53,7 @@ public class Module implements StructConverter {
/**
* @see ghidra.app.util.bin.StructConverter#toDataType()
*/
+ @Override
public DataType toDataType() throws DuplicateNameException {
StructureDataType struct = new StructureDataType(NAME + Long.toHexString(moduleBase), 0);
@@ -85,14 +86,14 @@ public class Module implements StructConverter {
/**
* @return the moduleSize
*/
- public int getModuleSize() {
+ public long getModuleSize() {
return moduleSize;
}
/**
* @param moduleSize the moduleSize to set
*/
- public void setModuleSize(int moduleSize) {
+ public void setModuleSize(long moduleSize) {
this.moduleSize = moduleSize;
}
diff --git a/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/userdump/Thread.java b/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/userdump/Thread.java
index a82488673d..3e20e87f22 100644
--- a/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/userdump/Thread.java
+++ b/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/userdump/Thread.java
@@ -33,7 +33,7 @@ public class Thread implements StructConverter {
private int priority;
private long teb;
private long stackStartOfMemoryRange;
- private int stackDataSize;
+ private long stackDataSize;
private int stackRVA;
private int contextDataSize;
private int contextRVA;
@@ -57,7 +57,7 @@ public class Thread implements StructConverter {
setPriority(reader.readNextInt());
setTeb(reader.readNextLong());
setStackStartOfMemoryRange(reader.readNextLong());
- setStackDataSize(reader.readNextInt());
+ setStackDataSize(reader.readNextUnsignedInt());
setStackRVA(reader.readNextInt());
setContextDataSize(reader.readNextInt());
setContextRVA(reader.readNextInt());
@@ -67,6 +67,7 @@ public class Thread implements StructConverter {
/**
* @see ghidra.app.util.bin.StructConverter#toDataType()
*/
+ @Override
public DataType toDataType() throws DuplicateNameException {
StructureDataType struct = new StructureDataType(NAME, 0);
@@ -151,11 +152,11 @@ public class Thread implements StructConverter {
this.stackStartOfMemoryRange = stackStartOfMemoryRange;
}
- public int getStackDataSize() {
+ public long getStackDataSize() {
return stackDataSize;
}
- public void setStackDataSize(int stackDataSize) {
+ public void setStackDataSize(long stackDataSize) {
this.stackDataSize = stackDataSize;
}
diff --git a/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/userdump/Userdump.java b/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/userdump/Userdump.java
index c446eaa419..de8a522333 100644
--- a/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/userdump/Userdump.java
+++ b/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/userdump/Userdump.java
@@ -72,9 +72,9 @@ public class Userdump extends DumpFile {
DataType dt = header.toDataType();
data.add(new DumpData(0, "DumpHeader", dt.getLength()));
- int regionOffset = (int) header.getMemoryRegionOffset();
+ long regionOffset = header.getMemoryRegionOffset();
addInteriorAddressObject("DumpHeader", 0, 0L, regionOffset);
- int blocksLength = (int) (reader.length() - regionOffset);
+ long blocksLength = reader.length() - regionOffset;
addInteriorAddressObject("RawBlocks", regionOffset,
header.getMemoryRegionOffset(), blocksLength);
@@ -163,6 +163,7 @@ public class Userdump extends DumpFile {
return Integer.toHexString(header.getMachineImageType());
}
+ @Override
public void analyze(TaskMonitor monitor) {
boolean analyzeEmbeddedObjects =
OptionUtils.getBooleanOptionValue(ANALYZE_EMBEDDED_OBJECTS_OPTION_NAME,
@@ -174,8 +175,9 @@ public class Userdump extends DumpFile {
}
/**
- * Get default Userdump
loader options.
- * See {@link DumpFile#getDefaultOptions(DumpFileReader)}.
+ * Get default Userdump
loader options. See
+ * {@link DumpFile#getDefaultOptions(DumpFileReader)}.
+ *
* @param reader dump file reader
* @return default collection of Userdump loader options
*/