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 ece6842..575520d 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 @@ -6,9 +6,6 @@ */ package net.sourceforge.phpeclipse.xdebug.php.model; -import java.net.URI; -import java.net.URISyntaxException; - import net.sourceforge.phpeclipse.xdebug.core.PHPDebugUtils; import net.sourceforge.phpeclipse.xdebug.core.DebugConnection.DebugResponse; @@ -23,29 +20,37 @@ import org.w3c.dom.NodeList; /** * @author Axel - * - * TODO To change the template for this generated type comment go to - * Window - Preferences - Java - Code Style - Code Templates + * + * TODO To change the template for this generated type comment go to Window - + * Preferences - Java - Code Style - Code Templates */ -public class XDebugStackFrame extends XDebugElement implements IStackFrame { - +public class XDebugStackFrame extends XDebugElement implements IStackFrame { + private XDebugThread fThread; -// private String fName; + + // private String fName; private int fLineNo; + private String fFileName; + private int fId; + private IVariable[] fVariables; + private String fLevel; + private String fType; + private String fWhere; - + /** - * Constructs a stack frame in the given thread with the given - * frame data. + * Constructs a stack frame in the given thread with the given frame data. * * @param thread - * @param data frame data - * @param id stack frame id (0 is the bottom of the stack) + * @param data + * frame data + * @param id + * stack frame id (0 is the bottom of the stack) */ public XDebugStackFrame(XDebugThread thread, Node stackNode, int id) { super((XDebugTarget) thread.getDebugTarget()); @@ -53,33 +58,36 @@ public class XDebugStackFrame extends XDebugElement implements IStackFrame { fThread = thread; init(stackNode); } - + /** * Initializes this frame based on its data * * @param data */ private void init(Node stackNode) { - - fLevel=PHPDebugUtils.getAttributeValue(stackNode,"level"); - fType=PHPDebugUtils.getAttributeValue(stackNode,"type"); - String fileName=PHPDebugUtils.unescapeString(PHPDebugUtils.getAttributeValue(stackNode,"filename")); - String lineNo=PHPDebugUtils.getAttributeValue(stackNode,"lineno"); - - if (lineNo!="") - fLineNo= Integer.parseInt(lineNo); - - fWhere=PHPDebugUtils.getAttributeValue(stackNode,"where"); - + + fLevel = PHPDebugUtils.getAttributeValue(stackNode, "level"); + fType = PHPDebugUtils.getAttributeValue(stackNode, "type"); + String fileName = PHPDebugUtils.unescapeString(PHPDebugUtils + .getAttributeValue(stackNode, "filename")); + String lineNo = PHPDebugUtils.getAttributeValue(stackNode, "lineno"); + + if (lineNo != "") + fLineNo = Integer.parseInt(lineNo); + + fWhere = PHPDebugUtils.getAttributeValue(stackNode, "where"); + fFileName = (new Path(fileName)).lastSegment(); - int id=-1; + int id = -1; try { - id=((XDebugTarget)getDebugTarget()).sendRequest("context_get","-d "+fLevel); + id = ((XDebugTarget) getDebugTarget()).sendRequest("context_get", + "-d " + fLevel); } catch (DebugException e) { // TODO Auto-generated catch block e.printStackTrace(); } - DebugResponse response=((XDebugTarget)getDebugTarget()).getResponse(id); + DebugResponse response = ((XDebugTarget) getDebugTarget()) + .getResponse(id); Node responseNode = response.getParentNode(); NodeList property = responseNode.getChildNodes(); fVariables = new IVariable[property.getLength()]; @@ -88,190 +96,265 @@ public class XDebugStackFrame extends XDebugElement implements IStackFrame { fVariables[i] = new XDebugVariable(this, propertyNode); } -// int numVars = strings.length - 3; -// fVariables = new IVariable[numVars]; -// for (int i = 0; i < numVars; i++) { -// fVariables[i] = new XDebugVariable(this, strings[i + 3]); -// } + // int numVars = strings.length - 3; + // fVariables = new IVariable[numVars]; + // for (int i = 0; i < numVars; i++) { + // fVariables[i] = new XDebugVariable(this, strings[i + 3]); + // } } - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see org.eclipse.debug.core.model.IStackFrame#getThread() */ public IThread getThread() { return fThread; } - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see org.eclipse.debug.core.model.IStackFrame#getVariables() */ public IVariable[] getVariables() throws DebugException { return fVariables; } - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see org.eclipse.debug.core.model.IStackFrame#hasVariables() */ public boolean hasVariables() throws DebugException { return fVariables.length > 0; } - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see org.eclipse.debug.core.model.IStackFrame#getLineNumber() */ public int getLineNumber() throws DebugException { return fLineNo; } - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see org.eclipse.debug.core.model.IStackFrame#getCharStart() */ public int getCharStart() throws DebugException { return -1; } - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see org.eclipse.debug.core.model.IStackFrame#getCharEnd() */ public int getCharEnd() throws DebugException { return -1; } - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see org.eclipse.debug.core.model.IStackFrame#getName() */ public String getName() throws DebugException { - return fFileName+"::"+fWhere+ " : lineno "+ fLineNo; + return fFileName + "::" + fWhere + " : lineno " + fLineNo; } - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see org.eclipse.debug.core.model.IStackFrame#getRegisterGroups() */ public IRegisterGroup[] getRegisterGroups() throws DebugException { return null; } - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see org.eclipse.debug.core.model.IStackFrame#hasRegisterGroups() */ public boolean hasRegisterGroups() throws DebugException { return false; } - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see org.eclipse.debug.core.model.IStep#canStepInto() */ public boolean canStepInto() { return getThread().canStepInto(); } - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see org.eclipse.debug.core.model.IStep#canStepOver() */ public boolean canStepOver() { return getThread().canStepOver(); } - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see org.eclipse.debug.core.model.IStep#canStepReturn() */ public boolean canStepReturn() { return getThread().canStepReturn(); } - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see org.eclipse.debug.core.model.IStep#isStepping() */ public boolean isStepping() { return getThread().isStepping(); } - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see org.eclipse.debug.core.model.IStep#stepInto() */ public void stepInto() throws DebugException { getThread().stepInto(); } - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see org.eclipse.debug.core.model.IStep#stepOver() */ public void stepOver() throws DebugException { getThread().stepOver(); } - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see org.eclipse.debug.core.model.IStep#stepReturn() */ public void stepReturn() throws DebugException { getThread().stepReturn(); } - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see org.eclipse.debug.core.model.ISuspendResume#canResume() */ public boolean canResume() { return getThread().canResume(); } - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see org.eclipse.debug.core.model.ISuspendResume#canSuspend() */ public boolean canSuspend() { return getThread().canSuspend(); } - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see org.eclipse.debug.core.model.ISuspendResume#isSuspended() */ public boolean isSuspended() { return getThread().isSuspended(); } - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see org.eclipse.debug.core.model.ISuspendResume#resume() */ public void resume() throws DebugException { getThread().resume(); } - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see org.eclipse.debug.core.model.ISuspendResume#suspend() */ public void suspend() throws DebugException { getThread().suspend(); } - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see org.eclipse.debug.core.model.ITerminate#canTerminate() */ public boolean canTerminate() { return getThread().canTerminate(); } - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see org.eclipse.debug.core.model.ITerminate#isTerminated() */ public boolean isTerminated() { return getThread().isTerminated(); } - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see org.eclipse.debug.core.model.ITerminate#terminate() */ public void terminate() throws DebugException { getThread().terminate(); } - + /** - * Returns the name of the source file this stack frame is associated - * with. + * Returns the name of the source file this stack frame is associated with. * - * @return the name of the source file this stack frame is associated - * with + * @return the name of the source file this stack frame is associated with */ public String getSourceName() { return fFileName; } - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see java.lang.Object#equals(java.lang.Object) */ public boolean equals(Object obj) { if (obj instanceof XDebugStackFrame) { - XDebugStackFrame sf = (XDebugStackFrame)obj; + XDebugStackFrame sf = (XDebugStackFrame) obj; try { - return sf.getSourceName().equals(getSourceName()) && - sf.getLineNumber() == getLineNumber() && - sf.fId == fId; + return sf.getSourceName().equals(getSourceName()) + && sf.getLineNumber() == getLineNumber() + && sf.fId == fId; } catch (DebugException e) { } } return false; } - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see java.lang.Object#hashCode() */ public int hashCode() { return getSourceName().hashCode() + fId; } - + /** * Returns this stack frame's unique identifier within its thread *