Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.debug.ui')
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/update/ThreadEventHandler.java14
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);

Back to the top