* @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;
}
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();
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