Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlain Magloire2003-01-27 04:49:47 +0000
committerAlain Magloire2003-01-27 04:49:47 +0000
commit5bf0f9e81e901ff8d20400f26735b8ac946214fd (patch)
tree583a580e383b57499d27c6f7c9a0e35273ba120a
parenta46e76ff437bfbcecaafa28c8f82a977748b6151 (diff)
downloadorg.eclipse.cdt-5bf0f9e81e901ff8d20400f26735b8ac946214fd.tar.gz
org.eclipse.cdt-5bf0f9e81e901ff8d20400f26735b8ac946214fd.tar.xz
org.eclipse.cdt-5bf0f9e81e901ff8d20400f26735b8ac946214fd.zip
VariableObjec takes the target as constructor argument
-rw-r--r--debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/ArgumentObject.java5
-rw-r--r--debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/ExpressionManager.java9
-rw-r--r--debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java2
-rw-r--r--debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/RegisterObject.java5
-rw-r--r--debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java49
-rw-r--r--debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/VariableObject.java8
-rw-r--r--debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/model/Value.java5
-rw-r--r--debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java2
8 files changed, 56 insertions, 29 deletions
diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/ArgumentObject.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/ArgumentObject.java
index 3e83d40860b..0fe3d53e68c 100644
--- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/ArgumentObject.java
+++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/ArgumentObject.java
@@ -7,14 +7,15 @@
package org.eclipse.cdt.debug.mi.core.cdi;
import org.eclipse.cdt.debug.core.cdi.ICDIArgumentObject;
+import org.eclipse.cdt.debug.core.cdi.model.ICDITarget;
import org.eclipse.cdt.debug.mi.core.cdi.model.StackFrame;
/**
*/
public class ArgumentObject extends VariableObject implements ICDIArgumentObject {
- public ArgumentObject(String name, StackFrame frame, int pos, int depth) {
- super(name, frame, pos, depth);
+ public ArgumentObject(ICDITarget target, String name, StackFrame frame, int pos, int depth) {
+ super(target, name, frame, pos, depth);
}
}
diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/ExpressionManager.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/ExpressionManager.java
index 67a00088fc4..730b10cbdfd 100644
--- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/ExpressionManager.java
+++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/ExpressionManager.java
@@ -51,8 +51,8 @@ public class ExpressionManager extends SessionObject implements ICDIExpressionMa
try {
Session session = (Session)getSession();
ICDITarget currentTarget = session.getCurrentTarget();
- ICDIThread currentThread = currentTarget.getCurrentThread();
- StackFrame currentFrame = (StackFrame)currentThread.getCurrentStackFrame();
+ //ICDIThread currentThread = currentTarget.getCurrentThread();
+ //StackFrame currentFrame = (StackFrame)currentThread.getCurrentStackFrame();
MISession mi = session.getMISession();
CommandFactory factory = mi.getCommandFactory();
MIVarCreate var = factory.createMIVarCreate(name);
@@ -61,7 +61,7 @@ public class ExpressionManager extends SessionObject implements ICDIExpressionMa
if (info == null) {
throw new CDIException("No answer");
}
- VariableObject varObj = new VariableObject(name, currentFrame, 0, 0);
+ VariableObject varObj = new VariableObject(currentTarget, name, null, 0, 0);
expression = new Expression(varObj, info.getMIVar());
addExpression(expression);
} catch (MIException e) {
@@ -92,7 +92,8 @@ public class ExpressionManager extends SessionObject implements ICDIExpressionMa
if (info == null) {
throw new CDIException("No answer");
}
- VariableObject varObj = new VariableObject(name, (StackFrame)frame, 0, 0);
+ ICDITarget target = frame.getThread().getTarget();
+ VariableObject varObj = new VariableObject(target, name, (StackFrame)frame, 0, 0);
expression = new Expression(varObj, info.getMIVar());
addExpression(expression);
} catch (MIException e) {
diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java
index 332bbae8833..08f6af13a82 100644
--- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java
+++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java
@@ -56,7 +56,7 @@ public class RegisterManager extends SessionObject implements ICDIRegisterManage
String[] names = info.getRegisterNames();
RegisterObject[] regs = new RegisterObject[names.length];
for (int i = 0; i < names.length; i++) {
- regs[i] = new RegisterObject(names[i], i);
+ regs[i] = new RegisterObject(session.getCurrentTarget(), names[i], i);
}
return regs;
} catch (MIException e) {
diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/RegisterObject.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/RegisterObject.java
index e8d67828763..4d141a6c185 100644
--- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/RegisterObject.java
+++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/RegisterObject.java
@@ -1,13 +1,14 @@
package org.eclipse.cdt.debug.mi.core.cdi;
import org.eclipse.cdt.debug.core.cdi.ICDIRegisterObject;
+import org.eclipse.cdt.debug.core.cdi.model.ICDITarget;
/**
*/
public class RegisterObject extends VariableObject implements ICDIRegisterObject {
- public RegisterObject(String name, int i) {
- super(name, null, i, 0);
+ public RegisterObject(ICDITarget target, String name, int i) {
+ super(target, name, null, i, 0);
}
}
diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java
index 6d32b81fdfa..de237847e67 100644
--- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java
+++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java
@@ -77,12 +77,14 @@ public class VariableManager extends SessionObject implements ICDIVariableManage
Variable[] vars = getVariables();
for (int i = 0; i < vars.length; i++) {
if (vars[i].getName().equals(name)) {
- if (vars[i].getStackFrame().equals(stack)) {
+ if (stack != null && vars[i].getStackFrame().equals(stack)) {
if (vars[i].getVariableObject().getPosition() == position) {
if (vars[i].getVariableObject().getStackDepth() == depth) {
return vars[i];
}
}
+ } else {
+ return vars[i];
}
}
}
@@ -159,13 +161,17 @@ public class VariableManager extends SessionObject implements ICDIVariableManage
argument = (Argument)variable;
}
if (argument == null) {
- StackFrame stack = argObj.getStackFrame();
String name = argObj.getName();
+ StackFrame stack = argObj.getStackFrame();
Session session = (Session)getSession();
- ICDITarget currentTarget = session.getCurrentTarget();
- Thread currentThread = (Thread)currentTarget.getCurrentThread();
- StackFrame currentFrame = (StackFrame)currentThread.getCurrentStackFrame();
- ((Thread)stack.getThread()).setCurrentStackFrame(stack, false);
+ Thread currentThread = null;
+ StackFrame currentFrame = null;
+ if (stack != null) {
+ ICDITarget currentTarget = session.getCurrentTarget();
+ currentThread = (Thread)currentTarget.getCurrentThread();
+ currentFrame = (StackFrame)currentThread.getCurrentStackFrame();
+ ((Thread)stack.getThread()).setCurrentStackFrame(stack, false);
+ }
try {
MISession mi = session.getMISession();
CommandFactory factory = mi.getCommandFactory();
@@ -180,7 +186,9 @@ public class VariableManager extends SessionObject implements ICDIVariableManage
} catch (MIException e) {
throw new MI2CDIException(e);
} finally {
- currentThread.setCurrentStackFrame(currentFrame, false);
+ if (currentThread != null) {
+ currentThread.setCurrentStackFrame(currentFrame, false);
+ }
}
}
return argument;
@@ -233,8 +241,9 @@ public class VariableManager extends SessionObject implements ICDIVariableManage
args = miFrames[0].getArgs();
}
if (args != null) {
+ ICDITarget target = frame.getThread().getTarget();
for (int i = 0; i < args.length; i++) {
- ArgumentObject arg = new ArgumentObject(args[i].getName(),
+ ArgumentObject arg = new ArgumentObject(target, args[i].getName(),
(StackFrame)frame, args.length - i, depth);
argObjects.add(arg);
}
@@ -281,7 +290,8 @@ public class VariableManager extends SessionObject implements ICDIVariableManage
buffer.append(function).append("::");
}
buffer.append(name);
- return new VariableObject(buffer.toString(), null, 0, 0);
+ ICDITarget target = getSession().getCurrentTarget();
+ return new VariableObject(target, buffer.toString(), null, 0, 0);
}
/**
@@ -310,8 +320,9 @@ public class VariableManager extends SessionObject implements ICDIVariableManage
}
args = info.getLocals();
if (args != null) {
+ ICDITarget target = frame.getThread().getTarget();
for (int i = 0; i < args.length; i++) {
- VariableObject varObj = new VariableObject(args[i].getName(),
+ VariableObject varObj = new VariableObject(target, args[i].getName(),
(StackFrame)frame, args.length - i, depth);
varObjects.add(varObj);
}
@@ -332,13 +343,17 @@ public class VariableManager extends SessionObject implements ICDIVariableManage
VariableObject varObj = (VariableObject)v;
Variable variable = findVariable(varObj);
if (variable == null) {
- StackFrame stack = varObj.getStackFrame();
String name = varObj.getName();
Session session = (Session)getSession();
- ICDITarget currentTarget = session.getCurrentTarget();
- Thread currentThread = (Thread)currentTarget.getCurrentThread();
- StackFrame currentFrame = (StackFrame)currentThread.getCurrentStackFrame();
- ((Thread)stack.getThread()).setCurrentStackFrame(stack, false);
+ StackFrame stack = varObj.getStackFrame();
+ Thread currentThread = null;
+ StackFrame currentFrame = null;
+ if (stack != null) {
+ ICDITarget currentTarget = session.getCurrentTarget();
+ currentThread = (Thread)currentTarget.getCurrentThread();
+ currentFrame = (StackFrame)currentThread.getCurrentStackFrame();
+ ((Thread)stack.getThread()).setCurrentStackFrame(stack, false);
+ }
try {
MISession mi = session.getMISession();
CommandFactory factory = mi.getCommandFactory();
@@ -353,7 +368,9 @@ public class VariableManager extends SessionObject implements ICDIVariableManage
} catch (MIException e) {
throw new MI2CDIException(e);
} finally {
- currentThread.setCurrentStackFrame(currentFrame, false);
+ if (currentThread != null) {
+ currentThread.setCurrentStackFrame(currentFrame, false);
+ }
}
}
return variable;
diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/VariableObject.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/VariableObject.java
index 1704260c640..599c7e3ff42 100644
--- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/VariableObject.java
+++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/VariableObject.java
@@ -6,6 +6,7 @@
package org.eclipse.cdt.debug.mi.core.cdi;
import org.eclipse.cdt.debug.core.cdi.ICDIVariableObject;
+import org.eclipse.cdt.debug.core.cdi.model.ICDITarget;
import org.eclipse.cdt.debug.mi.core.cdi.model.StackFrame;
/**
@@ -16,14 +17,19 @@ public class VariableObject implements ICDIVariableObject {
int position;
StackFrame frame;
int stackdepth;
+ ICDITarget target;
- public VariableObject(String n, StackFrame stack, int pos, int depth) {
+ public VariableObject(ICDITarget tgt, String n, StackFrame stack, int pos, int depth) {
+ target = tgt;
name = n;
frame = stack;
position = pos;
stackdepth = depth;
}
+ public ICDITarget getTarget() {
+ return target;
+ }
public StackFrame getStackFrame() {
return frame;
diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/model/Value.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/model/Value.java
index d3670890e0e..7c459a98e5b 100644
--- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/model/Value.java
+++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/model/Value.java
@@ -112,8 +112,9 @@ public class Value extends CObject implements ICDIValue {
MIVar[] vars = info.getMIVars();
variables = new Variable[vars.length];
for (int i = 0; i < vars.length; i++) {
- VariableObject varObj = new VariableObject(vars[i].getExp(),
- (StackFrame)variable.getStackFrame(), variable.getVariableObject().getPosition(),
+ VariableObject varObj = new VariableObject(getTarget(),
+ vars[i].getExp(), (StackFrame)variable.getStackFrame(),
+ variable.getVariableObject().getPosition(),
variable.getVariableObject().getStackDepth());
variables[i] = mgr.createVariable(varObj, vars[i]);
diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java
index 3db15df3716..2b1cf73c30e 100644
--- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java
+++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java
@@ -33,7 +33,7 @@ public class Variable extends CObject implements ICDIVariable {
VariableObject varObj;
public Variable(VariableObject obj, MIVar v) {
- super(obj.getStackFrame().getTarget());
+ super(obj.getTarget());
miVar = v;
varObj = obj;
}

Back to the top