diff --git a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/DebuggerCoordinates.java b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/DebuggerCoordinates.java index 0ea96f1350..eb00644089 100644 --- a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/DebuggerCoordinates.java +++ b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/DebuggerCoordinates.java @@ -400,7 +400,7 @@ public class DebuggerCoordinates { * @return exactly these same coordinates with the snap/time changed */ public DebuggerCoordinates snapNoResolve(long snap) { - if (time.isSnapOnly() && time.getSnap() == snap) { + if (time != null && time.isSnapOnly() && time.getSnap() == snap) { return this; } TraceSchedule newTime = TraceSchedule.snap(snap); diff --git a/Ghidra/Debug/Debugger/src/test/java/ghidra/app/plugin/core/debug/service/model/DebuggerModelServiceTest.java b/Ghidra/Debug/Debugger/src/test/java/ghidra/app/plugin/core/debug/service/model/DebuggerModelServiceTest.java index 89b1018790..7b3fd73be6 100644 --- a/Ghidra/Debug/Debugger/src/test/java/ghidra/app/plugin/core/debug/service/model/DebuggerModelServiceTest.java +++ b/Ghidra/Debug/Debugger/src/test/java/ghidra/app/plugin/core/debug/service/model/DebuggerModelServiceTest.java @@ -361,15 +361,18 @@ public class DebuggerModelServiceTest extends AbstractGhidraHeadedDebuggerGUITes } @Test - public void testGetTraceThreadWithTarget() throws Exception { + public void testGetTraceThreadWithTarget() throws Throwable { createTestModel(); mb.createTestProcessesAndThreads(); - modelService.recordTarget(mb.testProcess1, createTargetTraceMapper(mb.testProcess1), - ActionSource.AUTOMATIC); + TraceRecorder recorder = + modelService.recordTarget(mb.testProcess1, createTargetTraceMapper(mb.testProcess1), + ActionSource.AUTOMATIC); + waitRecorder(recorder); // The most complicated case, lest I want another dimension in a cross product mb.createTestThreadStacksAndFramesHaveRegisterBanks(); + waitRecorder(recorder); waitForPass(() -> { TraceThread traceThread = modelService.getTraceThread(mb.testProcess1, mb.testThread1);