diff options
author | Anton Leherbauer | 2009-07-09 09:08:35 +0000 |
---|---|---|
committer | Anton Leherbauer | 2009-07-09 09:08:35 +0000 |
commit | f24d70e641b2bb494899512b7b413d3a7f2b5221 (patch) | |
tree | 89d86d1b0a4f344bea4da012437d8450bb555ba5 /dsf | |
parent | 2432847089e7eae838ab15f22d3a424d07e20505 (diff) | |
download | org.eclipse.cdt-f24d70e641b2bb494899512b7b413d3a7f2b5221.tar.gz org.eclipse.cdt-f24d70e641b2bb494899512b7b413d3a7f2b5221.tar.xz org.eclipse.cdt-f24d70e641b2bb494899512b7b413d3a7f2b5221.zip |
[263521] [debug view][stack] Retrieving limited number of stack frames does not work reliably with breadcrumb.
Partial fix: Select new frame after expand stack
Diffstat (limited to 'dsf')
-rw-r--r-- | dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/launch/StackFramesVMNode.java | 18 |
1 files changed, 17 insertions, 1 deletions
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<List<Object>>(getExecutor(), rm) { + @Override + public void handleCompleted() { + final List<Object> data= getData(); + if (data != null && data.size() != 0) { + parentDelta.addNode(data.get(0), offset, IModelDelta.SELECT); + } + rm.done(); + } + }) + ); } |