mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-05 10:49:34 +02:00
Merge remote-tracking branch 'origin/GP-3074_Dan_emulatorTool--SQUASHED'
(Closes #4931)
This commit is contained in:
commit
aaa005c7af
12 changed files with 1283 additions and 14 deletions
|
@ -89,6 +89,7 @@ src/main/help/help/topics/VariableValueHoverPlugin/images/VariableValueHoverPlug
|
|||
src/main/help/help/topics/VariableValueHoverPlugin/images/VariableValueHoverPluginDecompiler.png||GHIDRA||||END|
|
||||
src/main/help/help/topics/VariableValueHoverPlugin/images/VariableValueHoverPluginListing.png||GHIDRA||||END|
|
||||
src/main/resources/defaultTools/Debugger.tool||GHIDRA||||END|
|
||||
src/main/resources/defaultTools/Emulator.tool||GHIDRA||||END|
|
||||
src/main/resources/images/add.png||FAMFAMFAM Icons - CC 2.5|||famfamfam silk icon set|END|
|
||||
src/main/resources/images/attach.png||GHIDRA||||END|
|
||||
src/main/resources/images/autoread.png||GHIDRA||||END|
|
||||
|
@ -122,6 +123,7 @@ src/main/resources/images/object-running.png||GHIDRA||||END|
|
|||
src/main/resources/images/object-terminated.png||GHIDRA||||END|
|
||||
src/main/resources/images/object-unpopulated.png||GHIDRA||||END|
|
||||
src/main/resources/images/process.png||GHIDRA||||END|
|
||||
src/main/resources/images/process32.png||GHIDRA||||END|
|
||||
src/main/resources/images/record.png||GHIDRA||||END|
|
||||
src/main/resources/images/register-marker.png||GHIDRA||||END|
|
||||
src/main/resources/images/registers.png||GHIDRA||||END|
|
||||
|
|
|
@ -32,7 +32,6 @@ import ghidra.framework.plugintool.util.PluginStatus;
|
|||
status = PluginStatus.RELEASED,
|
||||
servicesRequired = {
|
||||
DebuggerLogicalBreakpointService.class,
|
||||
DebuggerModelService.class,
|
||||
},
|
||||
eventsConsumed = {
|
||||
TraceOpenedPluginEvent.class,
|
||||
|
|
|
@ -76,7 +76,6 @@ import utilities.util.SuppressableCallback.Suppression;
|
|||
TraceSelectionPluginEvent.class
|
||||
},
|
||||
servicesRequired = {
|
||||
DebuggerModelService.class, // For memory capture
|
||||
DebuggerStaticMappingService.class, // For static listing sync. TODO: Optional?
|
||||
DebuggerEmulationService.class, // TODO: Optional?
|
||||
ProgramManager.class, // For static listing sync
|
||||
|
|
|
@ -59,7 +59,6 @@ import ghidra.program.util.ProgramSelection;
|
|||
TraceSelectionPluginEvent.class,
|
||||
},
|
||||
servicesRequired = {
|
||||
DebuggerModelService.class, // For memory capture
|
||||
ClipboardService.class,
|
||||
})
|
||||
public class DebuggerMemoryBytesPlugin
|
||||
|
|
|
@ -38,7 +38,6 @@ import ghidra.framework.plugintool.util.PluginStatus;
|
|||
TraceActivatedPluginEvent.class,
|
||||
},
|
||||
servicesRequired = {
|
||||
DebuggerModelService.class,
|
||||
DebuggerStaticMappingService.class,
|
||||
DebuggerTraceManagerService.class,
|
||||
ProgramManager.class,
|
||||
|
|
|
@ -37,7 +37,6 @@ import ghidra.framework.plugintool.util.PluginStatus;
|
|||
TraceActivatedPluginEvent.class,
|
||||
},
|
||||
servicesRequired = {
|
||||
DebuggerModelService.class,
|
||||
DebuggerStaticMappingService.class,
|
||||
DebuggerTraceManagerService.class,
|
||||
ProgramManager.class,
|
||||
|
|
|
@ -46,7 +46,6 @@ import ghidra.util.Msg;
|
|||
TraceClosedPluginEvent.class,
|
||||
},
|
||||
servicesRequired = {
|
||||
DebuggerModelService.class,
|
||||
DebuggerTraceManagerService.class,
|
||||
MarkerService.class, // TODO
|
||||
DataTypeManagerService.class, // For DataType selection field
|
||||
|
|
|
@ -468,8 +468,6 @@ public class DebuggerRegistersProvider extends ComponentProviderAdapter
|
|||
private Trace currentTrace; // Copy for transition
|
||||
private TraceRecorder currentRecorder; // Copy for transition
|
||||
|
||||
@AutoServiceConsumed
|
||||
private DebuggerModelService modelService;
|
||||
@AutoServiceConsumed
|
||||
private DebuggerTraceManagerService traceManager;
|
||||
@AutoServiceConsumed
|
||||
|
|
|
@ -37,7 +37,6 @@ import ghidra.framework.plugintool.util.PluginStatus;
|
|||
DebuggerWatchesService.class,
|
||||
},
|
||||
servicesRequired = {
|
||||
DebuggerModelService.class,
|
||||
DebuggerTraceManagerService.class,
|
||||
DataTypeManagerService.class, // For DataType selection field
|
||||
})
|
||||
|
|
|
@ -41,7 +41,8 @@ import ghidra.framework.model.*;
|
|||
import ghidra.framework.plugintool.*;
|
||||
import ghidra.framework.plugintool.annotation.AutoServiceConsumed;
|
||||
import ghidra.framework.plugintool.util.PluginStatus;
|
||||
import ghidra.program.model.address.*;
|
||||
import ghidra.program.model.address.Address;
|
||||
import ghidra.program.model.address.AddressRange;
|
||||
import ghidra.program.model.listing.*;
|
||||
import ghidra.program.util.*;
|
||||
import ghidra.trace.model.*;
|
||||
|
@ -70,7 +71,6 @@ import ghidra.util.datastruct.ListenerSet;
|
|||
},
|
||||
servicesRequired = {
|
||||
DebuggerTraceManagerService.class,
|
||||
DebuggerModelService.class,
|
||||
DebuggerStaticMappingService.class,
|
||||
},
|
||||
servicesProvided = {
|
||||
|
@ -1006,7 +1006,7 @@ public class DebuggerLogicalBreakpointServicePlugin extends Plugin
|
|||
|
||||
private void traceOpened(Trace trace) {
|
||||
processChange(c -> {
|
||||
TraceRecorder recorder = modelService.getRecorder(trace);
|
||||
TraceRecorder recorder = modelService == null ? null : modelService.getRecorder(trace);
|
||||
long snap = traceManager.getCurrentFor(trace).getSnap();
|
||||
doTrackTrace(c, trace, recorder, snap);
|
||||
}, "traceOpened");
|
||||
|
@ -1171,7 +1171,7 @@ public class DebuggerLogicalBreakpointServicePlugin extends Plugin
|
|||
public CompletableFuture<Void> placeBreakpointAt(Trace trace, Address address, long length,
|
||||
Collection<TraceBreakpointKind> kinds, String name) {
|
||||
long snap = traceManager.getCurrentFor(trace).getSnap();
|
||||
TraceRecorder recorder = modelService.getRecorder(trace);
|
||||
TraceRecorder recorder = modelService == null ? null : modelService.getRecorder(trace);
|
||||
|
||||
ProgramLocation staticLocation = mappingService.getOpenMappedLocation(
|
||||
new DefaultTraceLocation(trace, null, Lifespan.at(snap), address));
|
||||
|
@ -1268,7 +1268,8 @@ public class DebuggerLogicalBreakpointServicePlugin extends Plugin
|
|||
|
||||
private void planActOnLocTarget(BreakpointActionSet actions, TraceBreakpoint tb,
|
||||
BiConsumer<BreakpointActionSet, TargetBreakpointLocation> targetLocConsumer) {
|
||||
TraceRecorder recorder = modelService.getRecorder(tb.getTrace());
|
||||
TraceRecorder recorder =
|
||||
modelService == null ? null : modelService.getRecorder(tb.getTrace());
|
||||
if (recorder == null) {
|
||||
return;
|
||||
}
|
||||
|
|
1275
Ghidra/Debug/Debugger/src/main/resources/defaultTools/Emulator.tool
Normal file
1275
Ghidra/Debug/Debugger/src/main/resources/defaultTools/Emulator.tool
Normal file
File diff suppressed because it is too large
Load diff
BIN
Ghidra/Debug/Debugger/src/main/resources/images/process32.png
Normal file
BIN
Ghidra/Debug/Debugger/src/main/resources/images/process32.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
Loading…
Add table
Add a link
Reference in a new issue