diff --git a/src/main/java/abstractdebugging/AbstractDebuggingServer.java b/src/main/java/abstractdebugging/AbstractDebuggingServer.java index ccc7afd..382a87f 100644 --- a/src/main/java/abstractdebugging/AbstractDebuggingServer.java +++ b/src/main/java/abstractdebugging/AbstractDebuggingServer.java @@ -811,9 +811,11 @@ private void stepAllThreadsIntoMatchingEdge(int primaryThreadId, EdgeInfo primar for (var step : steps) { ThreadState thread = step.getLeft(); EdgeInfo targetEdge = step.getRight(); - NodeInfo targetNode = resultsService.lookupNode(targetEdge.nodeId()); - boolean isNewThread = targetEdge instanceof FunctionCallEdgeInfo fce && fce.createsNewThread(); - thread.pushFrame(new StackFrameState(targetNode, false, thread.getCurrentFrame().getLocalThreadIndex() - (isNewThread ? 1 : 0))); + if (targetEdge != null) { + NodeInfo targetNode = resultsService.lookupNode(targetEdge.nodeId()); + boolean isNewThread = targetEdge instanceof FunctionCallEdgeInfo fce && fce.createsNewThread(); + thread.pushFrame(new StackFrameState(targetNode, false, thread.getCurrentFrame().getLocalThreadIndex() - (isNewThread ? 1 : 0))); + } } onThreadsStopped("step", primaryThreadId);