diff options
Diffstat (limited to 'org.eclipse.debug.ui')
-rw-r--r-- | org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/update/ThreadEventHandler.java | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/update/ThreadEventHandler.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/update/ThreadEventHandler.java index a67ca97c3..602f6ae01 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/update/ThreadEventHandler.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/update/ThreadEventHandler.java @@ -266,8 +266,18 @@ public class ThreadEventHandler extends DebugEventHandler { if (isEqual(frame, prev)) { if (frame == null) { if (thread.isSuspended()) { - // no frames, but suspended - update & select - node = node.addNode(thread, threadIndex, flags | IModelDelta.STATE | IModelDelta.SELECT, childCount); + // try retrieving the top frame again, in case we ran into an evaluation earlier + try { + frame = thread.getTopStackFrame(); + } catch (DebugException e) { + } + if (frame == null) { + // no frames, but suspended - update & select + int threadNodeFlags = flags | IModelDelta.STATE | IModelDelta.SELECT; + node = node.addNode(thread, threadIndex, threadNodeFlags, childCount); + } else { + node = node.addNode(thread, threadIndex, flags, childCount); + } } } else { node = node.addNode(thread, threadIndex, flags, childCount); |