X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse.xdebug.core/src/net/sourceforge/phpeclipse/xdebug/php/model/XDebugStackFrame.java b/net.sourceforge.phpeclipse.xdebug.core/src/net/sourceforge/phpeclipse/xdebug/php/model/XDebugStackFrame.java index 4a4831e..b0e057f 100644 --- a/net.sourceforge.phpeclipse.xdebug.core/src/net/sourceforge/phpeclipse/xdebug/php/model/XDebugStackFrame.java +++ b/net.sourceforge.phpeclipse.xdebug.core/src/net/sourceforge/phpeclipse/xdebug/php/model/XDebugStackFrame.java @@ -43,7 +43,7 @@ public class XDebugStackFrame extends XDebugElement implements IStackFrame { * @param id stack frame id (0 is the bottom of the stack) */ public XDebugStackFrame(XDebugThread thread, int id, String type, int lineNumber, String where, /*URL*/String filename) { - super(thread == null ? null : (XDebugTarget) thread.getDebugTarget()); + super(/*thread == null ? null : */(XDebugTarget) thread.getDebugTarget()); fLevel = id; fThread = thread; @@ -70,16 +70,21 @@ public class XDebugStackFrame extends XDebugElement implements IStackFrame { } public IVariable[] getVariables() throws DebugException { - if (fVariables == null) { + /* always read variables, poor performance + * but this fix bug #680. + * need to investigate on. + */ + + //if (fVariables == null) { Node dfl = ((XDebugTarget) getDebugTarget()).getLocalVariables(fLevel); Node dfg = ((XDebugTarget) getDebugTarget()).getGlobalVariables(fLevel); parseVariable(dfl, dfg); - } + //} return fVariables; } - private void parseVariable(Node localVariables, Node globalVariables) { + private void parseVariable(Node localVariables, Node globalVariables) throws DebugException { NodeList property = localVariables.getChildNodes(); NodeList propertyGlobal = globalVariables.getChildNodes(); @@ -334,4 +339,8 @@ public class XDebugStackFrame extends XDebugElement implements IStackFrame { public boolean setVariableValue(XDebugVariable variable, String expression) throws DebugException { return ((XDebugTarget) getDebugTarget()).setVarValue("$" + variable.getName(), expression); } + + public Node eval(String expression) throws DebugException { + return ((XDebugTarget) getDebugTarget()).eval(expression); + } } \ No newline at end of file