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 516e2393cd..116e8656f5 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 @@ -1069,12 +1069,20 @@ public class DebuggerListingProvider extends CodeViewerProvider { TraceProgramView curView = current.getView(); if (!syncTrait.isAutoSyncCursorWithStaticListing() || trackedStatic == null) { Swing.runIfSwingOrRunLater(() -> { + if (curView != current.getView()) { + // Trace changed before Swing scheduled us + return; + } goToAndUpdateTrackingLabel(curView, loc); doCheckCurrentModuleMissing(); }); } else { Swing.runIfSwingOrRunLater(() -> { + if (curView != current.getView()) { + // Trace changed before Swing scheduled us + return; + } goToAndUpdateTrackingLabel(curView, loc); doCheckCurrentModuleMissing(); plugin.fireStaticLocationEvent(trackedStatic); diff --git a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/memory/DebuggerMemoryBytesProvider.java b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/memory/DebuggerMemoryBytesProvider.java index 8f20f1dc9a..5e279c5fd7 100644 --- a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/memory/DebuggerMemoryBytesProvider.java +++ b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/memory/DebuggerMemoryBytesProvider.java @@ -377,7 +377,7 @@ public class DebuggerMemoryBytesProvider extends ProgramByteViewerComponentProvi if (location == null) { return false; } - if (blockSet.getByteBlockInfo(location.getAddress()) == null) { + if (blockSet == null || blockSet.getByteBlockInfo(location.getAddress()) == null) { return false; } if (!super.goTo(gotoProgram, location)) { @@ -493,6 +493,10 @@ public class DebuggerMemoryBytesProvider extends ProgramByteViewerComponentProvi } TraceProgramView curView = current.getView(); Swing.runIfSwingOrRunLater(() -> { + if (curView != current.getView()) { + // Trace changed before Swing scheduled us + return; + } goToAndUpdateTrackingLabel(curView, loc); }); }