GP-2651: Update Debugger screenshots

This commit is contained in:
Dan 2022-10-14 11:04:36 -04:00
parent 11ceae4cae
commit 274a13a761
25 changed files with 44 additions and 21 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 6 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Before After
Before After

View file

@ -37,6 +37,11 @@ public class GenericDebuggerProgramLaunchOffer extends AbstractDebuggerProgramLa
return program.getName(); return program.getName();
} }
@Override
public String getButtonTitle() {
return "Launch";
}
@Override @Override
public String getMenuTitle() { public String getMenuTitle() {
return model.getBrief(); return model.getBrief();

View file

@ -164,8 +164,8 @@ public class ObjectNode extends GTreeSlowLoadingNode { //extends GTreeNode
ObjectContainer rootContainer = provider.getRoot(); ObjectContainer rootContainer = provider.getRoot();
Map<String, Object> rootMap = rootContainer.getAttributeMap(); Map<String, Object> rootMap = rootContainer.getAttributeMap();
if (rootMap.containsKey(TargetEventScope.EVENT_OBJECT_ATTRIBUTE_NAME)) { if (rootMap.containsKey(TargetEventScope.EVENT_OBJECT_ATTRIBUTE_NAME)) {
TargetThread targetProcess = TargetObject targetProcess =
(TargetThread) rootMap.get(TargetEventScope.EVENT_OBJECT_ATTRIBUTE_NAME); (TargetObject) rootMap.get(TargetEventScope.EVENT_OBJECT_ATTRIBUTE_NAME);
if (container.getTargetObject().equals(targetProcess)) { if (container.getTargetObject().equals(targetProcess)) {
return ICON_EVENT; return ICON_EVENT;
} }

View file

@ -319,7 +319,12 @@ public class DebuggerWatchesProvider extends ComponentProviderAdapter
PcodeExecutor<WatchValue> asyncWatchExecutor; // name is reminder to use asynchronously PcodeExecutor<WatchValue> asyncWatchExecutor; // name is reminder to use asynchronously
PcodeExecutor<byte[]> prevValueExecutor; PcodeExecutor<byte[]> prevValueExecutor;
// TODO: We could do better, but the tests can't sync if we do multi-threaded evaluation // 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 @AutoServiceConsumed
private DebuggerListingService listingService; // For goto and selection private DebuggerListingService listingService; // For goto and selection

View file

@ -109,6 +109,9 @@ public class DefaultPcodeDebuggerMemoryAccess extends DefaultPcodeTraceMemoryAcc
// TODO: Expand to block? DON'T OVERWRITE KNOWN! // TODO: Expand to block? DON'T OVERWRITE KNOWN!
DebuggerStaticMappingService mappingService = DebuggerStaticMappingService mappingService =
tool.getService(DebuggerStaticMappingService.class); tool.getService(DebuggerStaticMappingService.class);
if (mappingService == null) {
return false;
}
byte[] data = new byte[4096]; byte[] data = new byte[4096];
Trace trace = platform.getTrace(); Trace trace = platform.getTrace();

View file

@ -51,10 +51,13 @@ public class DebuggerObjectsPluginScreenShots extends GhidraScreenShotGenerator
static class ActionyTestTargetObject static class ActionyTestTargetObject
extends DefaultTestTargetObject<TestTargetObject, TestTargetObject> extends DefaultTestTargetObject<TestTargetObject, TestTargetObject>
implements TargetInterpreter, TargetResumable, TargetSteppable, TargetLauncher, implements TargetInterpreter, TargetResumable, TargetSteppable, TargetLauncher,
TargetAttacher, TargetAttachable { TargetAttacher, TargetAttachable, TargetThread, TargetExecutionStateful {
public ActionyTestTargetObject(TestTargetObject parent, String name, String typeHint) { public ActionyTestTargetObject(TestTargetObject parent, String name, String typeHint) {
super(parent, name, typeHint); super(parent, name, typeHint);
setAttributes(Map.of(
TargetExecutionStateful.STATE_ATTRIBUTE_NAME, TargetExecutionState.STOPPED),
"Init");
} }
@Override @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 * Right Way. I would have expected it to consume the type hint. Eh. Anyway, let's take a
* screenshot, shall we? * screenshot, shall we?
* *
@ -203,10 +206,10 @@ public class DebuggerObjectsPluginScreenShots extends GhidraScreenShotGenerator
waitForSwing(); waitForSwing();
mb.testModel.session.requestFocus(mb.testModel.session); mb.testModel.session.requestFocus(mb.testModel.session);
waitForSwing(); waitForSwing();
mb.testModel.session.requestFocus(thread1a34);
waitForSwing();
teEnvBlock.changeAttributes(List.of("BOGUS FOCUS"), List.of(), Map.of(), "Clean"); teEnvBlock.changeAttributes(List.of("BOGUS FOCUS"), List.of(), Map.of(), "Clean");
waitForSwing(); waitForSwing();
mb.testModel.session.requestFocus(thread1a34);
waitForSwing();
captureIsolatedProvider(objectsProvider, 600, 600); captureIsolatedProvider(objectsProvider, 600, 600);
} }

View file

@ -80,8 +80,9 @@ public class DebuggerPcodeStepperPluginScreenShots extends GhidraScreenShotGener
traceManager.openTrace(tb.trace); traceManager.openTrace(tb.trace);
traceManager.activateThread(thread); traceManager.activateThread(thread);
traceManager.activateTime(TraceSchedule.parse("0:.t0-7")); traceManager.activateTime(TraceSchedule.parse("0:.t0-7"));
waitForSwing();
pcodeProvider.mainPanel.setDividerLocation(0.4); runSwing(() -> pcodeProvider.mainPanel.setDividerLocation(360));
captureIsolatedProvider(pcodeProvider, 900, 300); captureIsolatedProvider(pcodeProvider, 900, 300);
} }
} }

View file

@ -96,6 +96,8 @@ public class DebuggerWatchesPluginScreenShots extends GhidraScreenShotGenerator
waitForSwing(); waitForSwing();
traceManager.activateSnap(snap1); traceManager.activateSnap(snap1);
waitForSwing(); waitForSwing();
watchesProvider.waitEvaluate(1000);
waitForSwing();
captureIsolatedProvider(watchesProvider, 800, 400); captureIsolatedProvider(watchesProvider, 800, 400);
} }

View file

@ -198,7 +198,11 @@ public interface TargetMethod extends TargetObject {
@SafeVarargs @SafeVarargs
public static TargetParameterMap ofEntries( public static TargetParameterMap ofEntries(
Entry<String, ParameterDescription<?>>... entries) { 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);
} }
} }

View file

@ -34,22 +34,22 @@ public class TestMimickJavaLauncher
setAttributes( setAttributes(
List.of(), Map.of(TargetMethod.PARAMETERS_ATTRIBUTE_NAME, TargetParameterMap.ofEntries( 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", Map.entry("Suspend",
ParameterDescription.create(Boolean.class, "Suspend", false, true, "Suspend", ParameterDescription.create(Boolean.class, "Suspend", false, true, "Suspend",
"")), "")),
Map.entry("Quote", Map.entry("Quote",
ParameterDescription.create(String.class, "Quote", false, "\"", "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", "")))),
"Initialized"); "Initialized");
} }