diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/Value.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/Value.java index ede41cbdd2c..5352cd8282b 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/Value.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/Value.java @@ -101,7 +101,9 @@ public class Value extends CObject implements ICDIValue { */ public ICDIVariable[] getVariables() throws CDIException { Variable[] variables = null; - MISession mi = getCTarget().getCSession().getMISession(); + CSession session = getCTarget().getCSession(); + MISession mi = session.getMISession(); + VariableManager mgr = (VariableManager)session.getVariableManager(); CommandFactory factory = mi.getCommandFactory(); MIVarListChildren var = factory.createMIVarListChildren(variable.getMIVar().getVarName()); @@ -114,8 +116,10 @@ public class Value extends CObject implements ICDIValue { MIVar[] vars = info.getMIVars(); variables = new Variable[vars.length]; for (int i = 0; i < vars.length; i++) { - variables[i] = - new Variable(variable.getStackFrame(), vars[i].getExp(), vars[i]); + //variables[i] = new Variable(variable.getStackFrame(), vars[i].getExp(), vars[i]); + variables[i] = mgr.createVariable(variable.getStackFrame(), + vars[i].getExp(), vars[i]); + } } catch (MIException e) { //throw new CDIException(e.getMessage()); 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 fcfbed3d32e..97290852297 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 @@ -210,6 +210,18 @@ public class VariableManager extends SessionObject implements ICDIExpressionMana return var; } + Variable createVariable(StackFrame stack, String name, MIVar miVar ) + throws CDIException { + Element element = new Element(); + element.miVar = miVar; + element.name = name; + element.stackframe = stack; + Variable var = new Variable(stack, name, miVar); + element.variable = var; + addElement(element); + return var; + } + ICDIArgument createArgument(StackFrame stack, String name) throws CDIException { Element element = createElement(stack, name);