Eclipse JDT
2.0

org.eclipse.jdt.debug.core
Interface IJavaStackFrame

All Superinterfaces:
IAdaptable, IDebugElement, IJavaModifiers, IStackFrame, IStep, ISuspendResume, ITerminate

public interface IJavaStackFrame
extends IStackFrame, IJavaModifiers

A stack frame in a thread on a Java virtual machine.

Clients are not intended to implement this interface.

See Also:
IStackFrame

Method Summary
 void dropToFrame()
          Drops to this stack frame by popping frames in this frame's owning thread until this stack frame is the top stack frame.
 IJavaVariable findVariable(String variableName)
          Returns the local, static, or "this" variable with the given name, or null if unable to resolve a variable with the name.
 List getArgumentTypeNames()
          Returns a list of fully qualified type names of the arguments for the method associated with this stack frame.
 IJavaClassType getDeclaringType()
          Returns the type in which this stack frame's method is declared.
 String getDeclaringTypeName()
          Returns the fully qualified name of the type that declares the method associated with this stack frame.
 IJavaVariable[] getLocalVariables()
          Returns a collection of local variables that are visible at the current point of execution in this stack frame.
 String getMethodName()
          Returns the name of the method associated with this stack frame
 String getReceivingTypeName()
          Returns the fully qualified name of the type that is the receiving object associated with this stack frame
 String getSignature()
          Returns the JNI signature for the method this stack frame is associated with.
 String getSourceName()
          Returns the source name debug attribute associated with the declaring type of this stack frame, or null if the source name debug attribute not present.
 IJavaObject getThis()
          Returns a reference to the receiver of the method associated with this stack frame, or null if this stack frame represents a static method.
 boolean isConstructor()
          Returns whether the method associated with this stack frame is a constructor.
 boolean isNative()
          Returns whether the method associated with this stack frame has been declared as native.
 boolean isObsolete()
          Returns whether the method associated with this stack frame is obsolete, that is, it is running old bytecodes that have been replaced in the VM.
 boolean isOutOfSynch()
          Returns whether the method associated with this stack frame is running code in the VM that is out of synch with the code in the workspace.
 boolean isStaticInitializer()
          Returns whether the method associated with this stack frame is a static initializer.
 boolean isSynchronized()
          Returns whether the method associated with this stack frame has been declared as synchronized.
 boolean supportsDropToFrame()
          Returns whether this stack frame currently supports the drop to frame operation.
 boolean wereLocalsAvailable()
          Returns whether local variable information was available when local variables were retrieved from the target for this frame.
 
Methods inherited from interface org.eclipse.debug.core.model.IStackFrame
getCharEnd, getCharStart, getLineNumber, getName, getRegisterGroups, getThread, getVariables, hasRegisterGroups, hasVariables
 
Methods inherited from interface org.eclipse.debug.core.model.IDebugElement
getDebugTarget, getLaunch, getModelIdentifier
 
Methods inherited from interface org.eclipse.core.runtime.IAdaptable
getAdapter
 
Methods inherited from interface org.eclipse.debug.core.model.IStep
canStepInto, canStepOver, canStepReturn, isStepping, stepInto, stepOver, stepReturn
 
Methods inherited from interface org.eclipse.debug.core.model.ISuspendResume
canResume, canSuspend, isSuspended, resume, suspend
 
Methods inherited from interface org.eclipse.debug.core.model.ITerminate
canTerminate, isTerminated, terminate
 
Methods inherited from interface org.eclipse.jdt.debug.core.IJavaModifiers
isFinal, isPackagePrivate, isPrivate, isProtected, isPublic, isStatic, isSynthetic
 

Method Detail

dropToFrame

public void dropToFrame()
                 throws DebugException
Drops to this stack frame by popping frames in this frame's owning thread until this stack frame is the top stack frame. The execution location is set to the beginning of this frame's associated method.

Throws:
DebugException - if this method fails. Reasons include:
  • Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
  • The capability is not supported by the target.
  • This stack frame is no longer valid. That is, the thread containing this stack frame has since been resumed.

supportsDropToFrame

public boolean supportsDropToFrame()
Returns whether this stack frame currently supports the drop to frame operation. Note that not all VMs support the operation.

Returns:
whether this stack frame currently supports drop to frame

isConstructor

public boolean isConstructor()
                      throws DebugException
Returns whether the method associated with this stack frame is a constructor.

Returns:
whether this stack frame is associated with a constructor
Throws:
DebugException - if this method fails. Reasons include:
  • Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
  • This stack frame is no longer valid. That is, the thread containing this stack frame has since been resumed.

isNative

public boolean isNative()
                 throws DebugException
Returns whether the method associated with this stack frame has been declared as native.

Returns:
whether this stack frame has been declared as native
Throws:
DebugException - if this method fails. Reasons include:
  • Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
  • This stack frame is no longer valid. That is, the thread containing this stack frame has since been resumed.

isStaticInitializer

public boolean isStaticInitializer()
                            throws DebugException
Returns whether the method associated with this stack frame is a static initializer.

Returns:
whether this stack frame is a static initializer
Throws:
DebugException - if this method fails. Reasons include:
    • Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
    • This stack frame is no longer valid. That is, the thread containing this stack frame has since been resumed.

isSynchronized

public boolean isSynchronized()
                       throws DebugException
Returns whether the method associated with this stack frame has been declared as synchronized.

Returns:
whether this stack frame has been declared as synchronized
Throws:
DebugException - if this method fails. Reasons include:
  • Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
  • This stack frame is no longer valid. That is, the thread containing this stack frame has since been resumed.

isOutOfSynch

public boolean isOutOfSynch()
                     throws DebugException
Returns whether the method associated with this stack frame is running code in the VM that is out of synch with the code in the workspace.

Returns:
whether this stack frame is out of synch with the workspace.
Throws:
DebugException - if this method fails. Reasons include:
  • Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
  • This stack frame is no longer valid. That is, the thread containing this stack frame has since been resumed.
Since:
2.0

isObsolete

public boolean isObsolete()
                   throws DebugException
Returns whether the method associated with this stack frame is obsolete, that is, it is running old bytecodes that have been replaced in the VM. This can occur when a hot code replace succeeds but the VM is unable to pop a call to an affected method from the call stack.

Returns:
whether this stack frame's method is obsolete
Throws:
DebugException - if this method fails. Reasons include:
  • Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
  • This stack frame is no longer valid. That is, the thread containing this stack frame has since been resumed.
Since:
2.0

getDeclaringTypeName

public String getDeclaringTypeName()
                            throws DebugException
Returns the fully qualified name of the type that declares the method associated with this stack frame.

Returns:
declaring type name
Throws:
DebugException - if this method fails. Reasons include:
  • Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
  • This stack frame is no longer valid. That is, the thread containing this stack frame has since been resumed.

getReceivingTypeName

public String getReceivingTypeName()
                            throws DebugException
Returns the fully qualified name of the type that is the receiving object associated with this stack frame

Returns:
receiving type name
Throws:
DebugException - if this method fails. Reasons include:
  • Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
  • This stack frame is no longer valid. That is, the thread containing this stack frame has since been resumed.

getSignature

public String getSignature()
                    throws DebugException
Returns the JNI signature for the method this stack frame is associated with.

Returns:
signature
Throws:
DebugException - if this method fails. Reasons include:
  • Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
  • This stack frame is no longer valid. That is, the thread containing this stack frame has since been resumed.

getArgumentTypeNames

public List getArgumentTypeNames()
                          throws DebugException
Returns a list of fully qualified type names of the arguments for the method associated with this stack frame.

Returns:
argument type names, or an empty list if this method has no arguments
Throws:
DebugException - if this method fails. Reasons include:
  • Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
  • This stack frame is no longer valid. That is, the thread containing this stack frame has since been resumed.

getMethodName

public String getMethodName()
                     throws DebugException
Returns the name of the method associated with this stack frame

Returns:
method name
Throws:
DebugException - if this method fails. Reasons include:
  • Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
  • This stack frame is no longer valid. That is, the thread containing this stack frame has since been resumed.

findVariable

public IJavaVariable findVariable(String variableName)
                           throws DebugException
Returns the local, static, or "this" variable with the given name, or null if unable to resolve a variable with the name.

Parameters:
variableName - the name of the variable to search for
Returns:
a variable, or null if none
Throws:
DebugException - if this method fails. Reasons include:
  • Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
  • This stack frame is no longer valid. That is, the thread containing this stack frame has since been resumed.

getSourceName

public String getSourceName()
                     throws DebugException
Returns the source name debug attribute associated with the declaring type of this stack frame, or null if the source name debug attribute not present.

Returns:
source name debug attribute, or null
Throws:
DebugException - if this method fails. Reasons include:
  • Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
  • This stack frame is no longer valid. That is, the thread containing this stack frame has since been resumed.

getLocalVariables

public IJavaVariable[] getLocalVariables()
                                  throws DebugException
Returns a collection of local variables that are visible at the current point of execution in this stack frame. The list includes arguments.

Returns:
collection of locals and arguments
Throws:
DebugException - if this method fails. Reasons include:
  • Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
  • This stack frame is no longer valid. That is, the thread containing this stack frame has since been resumed.
Since:
2.0

getThis

public IJavaObject getThis()
                    throws DebugException
Returns a reference to the receiver of the method associated with this stack frame, or null if this stack frame represents a static method.

Returns:
'this' object, or null
Throws:
DebugException - if this method fails. Reasons include:
  • Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
  • This stack frame is no longer valid. That is, the thread containing this stack frame has since been resumed.

getDeclaringType

public IJavaClassType getDeclaringType()
                                throws DebugException
Returns the type in which this stack frame's method is declared.

Returns:
the type in which this stack frame's method is declared
Throws:
DebugException - if this method fails. Reasons include:
  • Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
  • This stack frame is no longer valid. That is, the thread containing this stack frame has since been resumed.
Since:
2.0

wereLocalsAvailable

public boolean wereLocalsAvailable()
Returns whether local variable information was available when local variables were retrieved from the target for this frame. Returns true if locals have never been retrieved. This data is available after the fact, since variable retrieval is expensive.

Returns:
whether local variable information was available when variables were retrieved from the target. Returns true if locals have never been retrieved
Since:
2.0

Eclipse JDT
2.0

Copyright (c) IBM Corp. and others 2000, 2002. All Rights Reserved.