diff options
author | Alain Magloire | 2004-11-18 16:07:54 +0000 |
---|---|---|
committer | Alain Magloire | 2004-11-18 16:07:54 +0000 |
commit | 5221d3a97c9385e8fe4d7ee1ea27993e7521bd45 (patch) | |
tree | 79a2e848b78abde87274772d35ab8ed510235c90 | |
parent | 1cc0b275150466a719420a25781dc41fef40aac0 (diff) | |
download | org.eclipse.cdt-5221d3a97c9385e8fe4d7ee1ea27993e7521bd45.tar.gz org.eclipse.cdt-5221d3a97c9385e8fe4d7ee1ea27993e7521bd45.tar.xz org.eclipse.cdt-5221d3a97c9385e8fe4d7ee1ea27993e7521bd45.zip |
*** empty log message ***
3 files changed, 22 insertions, 14 deletions
diff --git a/debug/org.eclipse.cdt.debug.mi.core/ChangeLog b/debug/org.eclipse.cdt.debug.mi.core/ChangeLog index 4655f0a6f7b..62705be86ab 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/ChangeLog +++ b/debug/org.eclipse.cdt.debug.mi.core/ChangeLog @@ -1,3 +1,11 @@ +2004-11-19 Alain Magloire + + Clear the confusion about sublist of stackframes. + PR 78611 + + * cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Thread.java + * cdi/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java + 2004-11-17 David Inglis ICDIDebugger change to use IBinaryObject instead of IBnaryExecutable diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java index 1237de65845..66090a1c50c 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java @@ -69,7 +69,7 @@ public class VariableManager extends Manager { // We put a restriction on how deep we want to // go when doing update of the variables. // If the number is to high, gdb will just hang. - int MAX_STACK_DEPTH = 200; + int MAX_STACK_DEPTH = Thread.STACKFRAME_DEFAULT_DEPTH; Map variablesMap; MIVarChange[] noChanges = new MIVarChange[0]; @@ -574,8 +574,8 @@ public class VariableManager extends Manager { * */ public void update(Target target) throws CDIException { - int high = 0; - int low = 0; + int highLevel = 0; + int lowLevel = 0; List eventList = new ArrayList(); MISession mi = target.getMISession(); CommandFactory factory = mi.getCommandFactory(); @@ -586,20 +586,20 @@ public class VariableManager extends Manager { if (currentThread != null) { currentStack = currentThread.getCurrentStackFrame(); if (currentStack != null) { - high = currentStack.getLevel(); + highLevel = currentStack.getLevel(); } - if (high > 0) { - high--; + if (highLevel > MAX_STACK_DEPTH) { + highLevel = MAX_STACK_DEPTH; } - low = high - MAX_STACK_DEPTH; - if (low < 0) { - low = 0; + lowLevel = highLevel - MAX_STACK_DEPTH; + if (lowLevel < 0) { + lowLevel = 0; } - frames = currentThread.getStackFrames(low, high); + frames = currentThread.getStackFrames(0, highLevel); } for (int i = 0; i < vars.length; i++) { Variable variable = vars[i]; - if (isVariableNeedsToBeUpdate(variable, currentStack, frames, low)) { + if (isVariableNeedsToBeUpdate(variable, currentStack, frames, lowLevel)) { String varName = variable.getMIVar().getVarName(); MIVarChange[] changes = noChanges; MIVarUpdate update = factory.createMIVarUpdate(varName); @@ -639,7 +639,7 @@ public class VariableManager extends Manager { * @param frames * @return */ - boolean isVariableNeedsToBeUpdate(Variable variable, ICDIStackFrame current, ICDIStackFrame[] frames, int low) + boolean isVariableNeedsToBeUpdate(Variable variable, ICDIStackFrame current, ICDIStackFrame[] frames, int lowLevel) throws CDIException { ICDIStackFrame varStack = variable.getStackFrame(); boolean inScope = false; @@ -656,7 +656,7 @@ public class VariableManager extends Manager { // The variable is in the current selected frame it should be updated return true; } else { - if (varStack.getLevel() >= low) { + if (varStack.getLevel() >= lowLevel) { // Check if the Variable is still in Scope // if it is no longer in scope so update() can call "-var-delete". for (int i = 0; i < frames.length; i++) { diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Thread.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Thread.java index f235c54e940..7bf1587e90c 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Thread.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Thread.java @@ -50,7 +50,7 @@ public class Thread extends CObject implements ICDIThread { List currentFrames; int stackdepth = 0; - final static int STACKFRAME_DEFAULT_DEPTH = 200; + final public static int STACKFRAME_DEFAULT_DEPTH = 200; public Thread(Target target, int threadId) { this(target, threadId, null); |