diff --git a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/trace/DebuggerTraceTabPanel.java b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/trace/DebuggerTraceTabPanel.java index a83ee6ab40..53fe4f9781 100644 --- a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/trace/DebuggerTraceTabPanel.java +++ b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/trace/DebuggerTraceTabPanel.java @@ -101,24 +101,27 @@ public class DebuggerTraceTabPanel extends GTabPanel .buildAndInstall(tool); actionCloseAllTraces = CloseAllTracesAction.builderPopup(plugin) .withContext(DebuggerTraceFileActionContext.class) - .popupWhen(c -> !traceManager.getOpenTraces().isEmpty()) + .popupWhen(c -> traceManager != null && !traceManager.getOpenTraces().isEmpty()) .onAction(c -> traceManager.closeAllTraces()) .buildAndInstall(tool); actionCloseOtherTraces = CloseOtherTracesAction.builderPopup(plugin) .withContext(DebuggerTraceFileActionContext.class) - .popupWhen(c -> traceManager.getOpenTraces().size() > 1 && c.getTrace() != null) + .popupWhen(c -> traceManager != null && traceManager.getOpenTraces().size() > 1 && + c.getTrace() != null) .onAction(c -> traceManager.closeOtherTraces(c.getTrace())) .buildAndInstall(tool); actionCloseDeadTraces = CloseDeadTracesAction.builderPopup(plugin) .withContext(DebuggerTraceFileActionContext.class) - .popupWhen(c -> !traceManager.getOpenTraces().isEmpty() && targetService != null) + .popupWhen(c -> traceManager != null && !traceManager.getOpenTraces().isEmpty() && + targetService != null) .onAction(c -> traceManager.closeDeadTraces()) .buildAndInstall(tool); } private String getNameForTrace(Trace trace) { String name = DomainObjectDisplayUtils.getTabText(trace); - DebuggerCoordinates current = traceManager.getCurrentFor(trace); + DebuggerCoordinates current = + traceManager == null ? DebuggerCoordinates.NOWHERE : traceManager.getCurrentFor(trace); if (current == DebuggerCoordinates.NOWHERE) { // TODO: Could use view's snap and time table's schedule return name + " (?)"; @@ -209,6 +212,9 @@ public class DebuggerTraceTabPanel extends GTabPanel private void traceTabSelected(Trace newTrace) { cbCoordinateActivation.invoke(() -> { + if (traceManager == null) { + return; + } traceManager.activateTrace(newTrace); }); }