diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/launch/StackFramesVMNode.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/launch/StackFramesVMNode.java index 82fa626480a..a2bb40b8f9e 100644 --- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/launch/StackFramesVMNode.java +++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/launch/StackFramesVMNode.java @@ -699,7 +699,23 @@ public class StackFramesVMNode extends AbstractDMVMNode private void buildDeltaForExpandStackEvent(IExecutionDMContext execDmc, final VMDelta parentDelta, final RequestMonitor rm) { parentDelta.setFlags(parentDelta.getFlags() | IModelDelta.CONTENT); - rm.done(); + // Retrieve the list of new stack frames, and mark the first frame to be selected. + final int offset = getStackFrameLimit(execDmc) / 2; + getVMProvider().updateNode( + this, + new VMChildrenUpdate( + parentDelta, getVMProvider().getPresentationContext(), offset, offset, + new DataRequestMonitor>(getExecutor(), rm) { + @Override + public void handleCompleted() { + final List data= getData(); + if (data != null && data.size() != 0) { + parentDelta.addNode(data.get(0), offset, IModelDelta.SELECT); + } + rm.done(); + } + }) + ); }