diff --git a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/listing/DebuggerListingProvider.java b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/listing/DebuggerListingProvider.java index 5a34cf9936..148a749354 100644 --- a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/listing/DebuggerListingProvider.java +++ b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/listing/DebuggerListingProvider.java @@ -768,7 +768,8 @@ public class DebuggerListingProvider extends CodeViewerProvider { if (gotoProgram != getProgram()) { doSetProgram(gotoProgram); } - if (!gotoProgram.getMemory().contains(location.getAddress())) { + if (gotoProgram == null || + !gotoProgram.getMemory().contains(location.getAddress())) { return false; } if (super.goTo(gotoProgram, location)) { diff --git a/Ghidra/Debug/Debugger/src/test/java/ghidra/app/plugin/core/debug/gui/watch/DebuggerWatchesProviderTest.java b/Ghidra/Debug/Debugger/src/test/java/ghidra/app/plugin/core/debug/gui/watch/DebuggerWatchesProviderTest.java index 7b93305433..b7eb9ab11d 100644 --- a/Ghidra/Debug/Debugger/src/test/java/ghidra/app/plugin/core/debug/gui/watch/DebuggerWatchesProviderTest.java +++ b/Ghidra/Debug/Debugger/src/test/java/ghidra/app/plugin/core/debug/gui/watch/DebuggerWatchesProviderTest.java @@ -803,4 +803,18 @@ public class DebuggerWatchesProviderTest extends AbstractGhidraHeadedDebuggerGUI assertTrue(LongLongDataType.dataType.isEquivalent(rRow0.getDataType())); assertEquals(FormatSettingsDefinition.DECIMAL, format.getChoice(rRow0.getSettings())); } + + @Test + public void testTraceClosure() throws Throwable { + setRegisterValues(thread); + watchesProvider.addWatch("r0"); + watchesProvider.addWatch("*:8 r0"); + + traceManager.openTrace(tb.trace); + waitForSwing(); + + tb.close(); + traceManager.activateThread(thread); + traceManager.closeTrace(tb.trace); + } }