GP-2651: Update Debugger screenshots
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 9.8 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 49 KiB |
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 6 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 9.8 KiB After Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 9 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 50 KiB |
|
@ -37,6 +37,11 @@ public class GenericDebuggerProgramLaunchOffer extends AbstractDebuggerProgramLa
|
|||
return program.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getButtonTitle() {
|
||||
return "Launch";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMenuTitle() {
|
||||
return model.getBrief();
|
||||
|
|
|
@ -164,8 +164,8 @@ public class ObjectNode extends GTreeSlowLoadingNode { //extends GTreeNode
|
|||
ObjectContainer rootContainer = provider.getRoot();
|
||||
Map<String, Object> rootMap = rootContainer.getAttributeMap();
|
||||
if (rootMap.containsKey(TargetEventScope.EVENT_OBJECT_ATTRIBUTE_NAME)) {
|
||||
TargetThread targetProcess =
|
||||
(TargetThread) rootMap.get(TargetEventScope.EVENT_OBJECT_ATTRIBUTE_NAME);
|
||||
TargetObject targetProcess =
|
||||
(TargetObject) rootMap.get(TargetEventScope.EVENT_OBJECT_ATTRIBUTE_NAME);
|
||||
if (container.getTargetObject().equals(targetProcess)) {
|
||||
return ICON_EVENT;
|
||||
}
|
||||
|
|
|
@ -319,7 +319,12 @@ public class DebuggerWatchesProvider extends ComponentProviderAdapter
|
|||
PcodeExecutor<WatchValue> asyncWatchExecutor; // name is reminder to use asynchronously
|
||||
PcodeExecutor<byte[]> prevValueExecutor;
|
||||
// TODO: We could do better, but the tests can't sync if we do multi-threaded evaluation
|
||||
ExecutorService workQueue = Executors.newSingleThreadExecutor();
|
||||
ExecutorService workQueue = Executors.newSingleThreadExecutor(new ThreadFactory() {
|
||||
@Override
|
||||
public Thread newThread(Runnable r) {
|
||||
return new Thread(r, "Watch Evaluator");
|
||||
}
|
||||
});
|
||||
|
||||
@AutoServiceConsumed
|
||||
private DebuggerListingService listingService; // For goto and selection
|
||||
|
|
|
@ -109,6 +109,9 @@ public class DefaultPcodeDebuggerMemoryAccess extends DefaultPcodeTraceMemoryAcc
|
|||
// TODO: Expand to block? DON'T OVERWRITE KNOWN!
|
||||
DebuggerStaticMappingService mappingService =
|
||||
tool.getService(DebuggerStaticMappingService.class);
|
||||
if (mappingService == null) {
|
||||
return false;
|
||||
}
|
||||
byte[] data = new byte[4096];
|
||||
|
||||
Trace trace = platform.getTrace();
|
||||
|
|
|
@ -51,10 +51,13 @@ public class DebuggerObjectsPluginScreenShots extends GhidraScreenShotGenerator
|
|||
static class ActionyTestTargetObject
|
||||
extends DefaultTestTargetObject<TestTargetObject, TestTargetObject>
|
||||
implements TargetInterpreter, TargetResumable, TargetSteppable, TargetLauncher,
|
||||
TargetAttacher, TargetAttachable {
|
||||
TargetAttacher, TargetAttachable, TargetThread, TargetExecutionStateful {
|
||||
|
||||
public ActionyTestTargetObject(TestTargetObject parent, String name, String typeHint) {
|
||||
super(parent, name, typeHint);
|
||||
setAttributes(Map.of(
|
||||
TargetExecutionStateful.STATE_ATTRIBUTE_NAME, TargetExecutionState.STOPPED),
|
||||
"Init");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -94,7 +97,7 @@ public class DebuggerObjectsPluginScreenShots extends GhidraScreenShotGenerator
|
|||
}
|
||||
|
||||
/**
|
||||
* NOTE: The icon selection looks like it relies of "duck typing", which is probably not the
|
||||
* NOTE: The icon selection looks like it relies on "duck typing", which is probably not the
|
||||
* Right Way. I would have expected it to consume the type hint. Eh. Anyway, let's take a
|
||||
* screenshot, shall we?
|
||||
*
|
||||
|
@ -203,10 +206,10 @@ public class DebuggerObjectsPluginScreenShots extends GhidraScreenShotGenerator
|
|||
waitForSwing();
|
||||
mb.testModel.session.requestFocus(mb.testModel.session);
|
||||
waitForSwing();
|
||||
mb.testModel.session.requestFocus(thread1a34);
|
||||
waitForSwing();
|
||||
teEnvBlock.changeAttributes(List.of("BOGUS FOCUS"), List.of(), Map.of(), "Clean");
|
||||
waitForSwing();
|
||||
mb.testModel.session.requestFocus(thread1a34);
|
||||
waitForSwing();
|
||||
|
||||
captureIsolatedProvider(objectsProvider, 600, 600);
|
||||
}
|
||||
|
|
|
@ -80,8 +80,9 @@ public class DebuggerPcodeStepperPluginScreenShots extends GhidraScreenShotGener
|
|||
traceManager.openTrace(tb.trace);
|
||||
traceManager.activateThread(thread);
|
||||
traceManager.activateTime(TraceSchedule.parse("0:.t0-7"));
|
||||
waitForSwing();
|
||||
|
||||
pcodeProvider.mainPanel.setDividerLocation(0.4);
|
||||
runSwing(() -> pcodeProvider.mainPanel.setDividerLocation(360));
|
||||
captureIsolatedProvider(pcodeProvider, 900, 300);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -96,6 +96,8 @@ public class DebuggerWatchesPluginScreenShots extends GhidraScreenShotGenerator
|
|||
waitForSwing();
|
||||
traceManager.activateSnap(snap1);
|
||||
waitForSwing();
|
||||
watchesProvider.waitEvaluate(1000);
|
||||
waitForSwing();
|
||||
|
||||
captureIsolatedProvider(watchesProvider, 800, 400);
|
||||
}
|
||||
|
|
|
@ -198,7 +198,11 @@ public interface TargetMethod extends TargetObject {
|
|||
@SafeVarargs
|
||||
public static TargetParameterMap ofEntries(
|
||||
Entry<String, ParameterDescription<?>>... entries) {
|
||||
return new ImmutableTargetParameterMap(Map.ofEntries(entries));
|
||||
Map<String, ParameterDescription<?>> ordered = new LinkedHashMap<>();
|
||||
for (Entry<String, ParameterDescription<?>> ent: entries) {
|
||||
ordered.put(ent.getKey(), ent.getValue());
|
||||
}
|
||||
return new ImmutableTargetParameterMap(ordered);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -34,22 +34,22 @@ public class TestMimickJavaLauncher
|
|||
|
||||
setAttributes(
|
||||
List.of(), Map.of(TargetMethod.PARAMETERS_ATTRIBUTE_NAME, TargetParameterMap.ofEntries(
|
||||
Map.entry("Home",
|
||||
ParameterDescription.create(String.class, "Home", false,
|
||||
"/opt/java-17-amazon-corretto", "Home", "")),
|
||||
Map.entry("Launcher",
|
||||
ParameterDescription.create(String.class, "Launcher", false, "java", "Launcher",
|
||||
"")),
|
||||
Map.entry("Main",
|
||||
ParameterDescription.create(String.class, "Main", false, "hw.HelloWorld",
|
||||
"Main", "")),
|
||||
Map.entry("Options",
|
||||
ParameterDescription.create(String.class, "Options", false, "", "Options", "")),
|
||||
Map.entry("Suspend",
|
||||
ParameterDescription.create(Boolean.class, "Suspend", false, true, "Suspend",
|
||||
"")),
|
||||
Map.entry("Quote",
|
||||
ParameterDescription.create(String.class, "Quote", false, "\"", "Quote", "")),
|
||||
Map.entry("Launcher",
|
||||
ParameterDescription.create(String.class, "Launcher", false, "java", "Launcher",
|
||||
"")),
|
||||
Map.entry("Options",
|
||||
ParameterDescription.create(String.class, "Options", false, "", "Options", "")),
|
||||
Map.entry("Main",
|
||||
ParameterDescription.create(String.class, "Main", false, "hw.HelloWorld",
|
||||
"Main", "")),
|
||||
Map.entry("Home",
|
||||
ParameterDescription.create(String.class, "Home", false,
|
||||
"/opt/java-11-amazon-corretto", "Home", "")))),
|
||||
ParameterDescription.create(String.class, "Quote", false, "\"", "Quote", "")))),
|
||||
"Initialized");
|
||||
}
|
||||
|
||||
|
|