Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlain Magloire2004-11-18 16:07:54 +0000
committerAlain Magloire2004-11-18 16:07:54 +0000
commit5221d3a97c9385e8fe4d7ee1ea27993e7521bd45 (patch)
tree79a2e848b78abde87274772d35ab8ed510235c90
parent1cc0b275150466a719420a25781dc41fef40aac0 (diff)
downloadorg.eclipse.cdt-5221d3a97c9385e8fe4d7ee1ea27993e7521bd45.tar.gz
org.eclipse.cdt-5221d3a97c9385e8fe4d7ee1ea27993e7521bd45.tar.xz
org.eclipse.cdt-5221d3a97c9385e8fe4d7ee1ea27993e7521bd45.zip
*** empty log message ***
-rw-r--r--debug/org.eclipse.cdt.debug.mi.core/ChangeLog8
-rw-r--r--debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java26
-rw-r--r--debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Thread.java2
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);

Back to the top