Skip to main content
summaryrefslogtreecommitdiffstats
path: root/dsf
diff options
context:
space:
mode:
authorAnton Leherbauer2009-07-09 09:08:35 +0000
committerAnton Leherbauer2009-07-09 09:08:35 +0000
commitf24d70e641b2bb494899512b7b413d3a7f2b5221 (patch)
tree89d86d1b0a4f344bea4da012437d8450bb555ba5 /dsf
parent2432847089e7eae838ab15f22d3a424d07e20505 (diff)
downloadorg.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.java18
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();
+ }
+ })
+ );
}

Back to the top