diff --git a/Ghidra/Debug/Debugger-agent-gdb/src/main/java/agent/gdb/model/impl/GdbModelTargetMemoryRegion.java b/Ghidra/Debug/Debugger-agent-gdb/src/main/java/agent/gdb/model/impl/GdbModelTargetMemoryRegion.java index 843b0869e3..ae56376ed5 100644 --- a/Ghidra/Debug/Debugger-agent-gdb/src/main/java/agent/gdb/model/impl/GdbModelTargetMemoryRegion.java +++ b/Ghidra/Debug/Debugger-agent-gdb/src/main/java/agent/gdb/model/impl/GdbModelTargetMemoryRegion.java @@ -52,9 +52,9 @@ public class GdbModelTargetMemoryRegion protected static String computeDisplay(GdbMemoryMapping mapping) { // NOTE: This deviates from GDB's table display, as it'd be confusing in isolation if (mapping.getObjfile() == null || mapping.getObjfile().length() == 0) { - return String.format("?? [0x%x-0x%x]", mapping.getStart(), mapping.getEnd()); + return String.format("?? (0x%x-0x%x)", mapping.getStart(), mapping.getEnd()); } - return String.format("%s [0x%x-0x%x] (0x%x)", mapping.getObjfile(), mapping.getStart(), + return String.format("%s (0x%x-0x%x,0x%x)", mapping.getObjfile(), mapping.getStart(), mapping.getEnd(), mapping.getOffset()); } diff --git a/Ghidra/Debug/Debugger/certification.manifest b/Ghidra/Debug/Debugger/certification.manifest index 2b87be0f13..197b22ac1d 100644 --- a/Ghidra/Debug/Debugger/certification.manifest +++ b/Ghidra/Debug/Debugger/certification.manifest @@ -95,6 +95,7 @@ src/main/help/help/topics/DebuggerObjectsPlugin/images/stop.png||GHIDRA||||END| src/main/help/help/topics/DebuggerPcodeStepperPlugin/DebuggerPcodeStepperPlugin.html||GHIDRA||||END| src/main/help/help/topics/DebuggerPcodeStepperPlugin/images/DebuggerPcodeStepperPlugin.png||GHIDRA||||END| src/main/help/help/topics/DebuggerRegionsPlugin/DebuggerRegionsPlugin.html||GHIDRA||||END| +src/main/help/help/topics/DebuggerRegionsPlugin/images/DebuggerRegionMapProposalDialog.png||GHIDRA||||END| src/main/help/help/topics/DebuggerRegionsPlugin/images/DebuggerRegionsPlugin.png||GHIDRA||||END| src/main/help/help/topics/DebuggerRegistersPlugin/DebuggerRegistersPlugin.html||GHIDRA||||END| src/main/help/help/topics/DebuggerRegistersPlugin/images/DebuggerAvailableRegistersDialog.png||GHIDRA||||END| diff --git a/Ghidra/Debug/Debugger/ghidra_scripts/AddMapping.java b/Ghidra/Debug/Debugger/ghidra_scripts/AddMapping.java index ce98c0ee31..1831dcd77c 100644 --- a/Ghidra/Debug/Debugger/ghidra_scripts/AddMapping.java +++ b/Ghidra/Debug/Debugger/ghidra_scripts/AddMapping.java @@ -22,7 +22,6 @@ import ghidra.program.model.address.AddressSpace; import ghidra.program.util.ProgramLocation; import ghidra.trace.model.DefaultTraceLocation; import ghidra.trace.model.Trace; -import ghidra.util.database.UndoableTransaction; public class AddMapping extends GhidraScript { @Override @@ -35,13 +34,10 @@ public class AddMapping extends GhidraScript { AddressSpace dynRam = currentTrace.getBaseAddressFactory().getDefaultAddressSpace(); AddressSpace statRam = currentProgram.getAddressFactory().getDefaultAddressSpace(); - try (UndoableTransaction tid = - UndoableTransaction.start(currentTrace, "Add Mapping", true)) { - mappings.addMapping( - new DefaultTraceLocation(currentTrace, null, Range.atLeast(0L), - dynRam.getAddress(0x00400000)), - new ProgramLocation(currentProgram, statRam.getAddress(0x00400000)), - 0x10000, false); - } + mappings.addMapping( + new DefaultTraceLocation(currentTrace, null, Range.atLeast(0L), + dynRam.getAddress(0x00400000)), + new ProgramLocation(currentProgram, statRam.getAddress(0x00400000)), + 0x10000, false); } } diff --git a/Ghidra/Debug/Debugger/src/main/help/help/topics/DebuggerBots/DebuggerBots.html b/Ghidra/Debug/Debugger/src/main/help/help/topics/DebuggerBots/DebuggerBots.html index c7e4d3751b..c4ef1ef1be 100644 --- a/Ghidra/Debug/Debugger/src/main/help/help/topics/DebuggerBots/DebuggerBots.html +++ b/Ghidra/Debug/Debugger/src/main/help/help/topics/DebuggerBots/DebuggerBots.html @@ -59,5 +59,15 @@ performed manually using the Map Sections action in the Modules and Sections window.
+ +This bot automatically maps trace regions to memory blocks of programs opened in the same + tool. Its operation is analogous to that of the Map Modules Bot, except that it creates the + mapped ranges by region. It is not commonly used, as it's less efficient than the Map Modules + Bot, but it is required whenever a target fails to present modules. This action can be + performed manually using the Map Regions + action in the Regions window.