Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.eclipse.debug.core.model
Interface IStackFrame

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

public interface IStackFrame
extends IDebugElement, IStep, ISuspendResume, ITerminate

A stack frame represents an execution context in a suspended thread. A stack frame contains variables representing visible locals and arguments at the current execution location. Minimally, a stack frame supports the following:

- suspend/resume (convenience to resume this stack frame's thread)
- stepping
- termination (convenience to terminate this stack frame's thread or debug target)

A debug model implementation may choose to re-use or discard stack frames on iterative thread suspensions. Clients cannot assume that stack frames are identical or equal across iterative thread suspensions and must check for equality on iterative suspensions if they wish to re-use the objects.

A debug model implementation that preserves equality across iterative suspensions may display more desirable behavior in some clients. For example, if stack frames are preserved while stepping, a UI client would be able to update the UI incrementally, rather than collapse and redraw the entire list.

Clients may implement this interface.

See Also:
  `IStep`, `ISuspendResume`, `ITerminate`

Method Summary
`int` | `getCharEnd()` Returns the index of the last character in the associated source element that corresponds to the current location of the instruction pointer in this stack frame, or `-1` if the information is unavailable.
`int` | `getCharStart()` Returns the index of the first character in the associated source element that corresponds to the current location of the instruction pointer in this stack frame, or `-1` if the information is unavailable.
`int` | `getLineNumber()` Returns the line number of the instruction pointer in this stack frame that corresponds to a line in an associated source element, or `-1` if line number information is unavailable.
`String` | `getName()` Returns the name of this stack frame.
`IRegisterGroup[]` | `getRegisterGroups()` Returns the register groups assigned to this stack frame, or an empty collection if no register groups are assigned to this stack frame.
`IThread` | `getThread()` Returns the thread this stack frame is contained in.
`IVariable[]` | `getVariables()` Returns the visible variables in this stack frame.
`boolean` | `hasRegisterGroups()` Returns whether this stack frame contains any register groups.
`boolean` | `hasVariables()` Returns whether this stack frame currently contains any visible variables.

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`

Method Detail

### getThread

    public IThread getThread()

  Returns the thread this stack frame is contained in.

  Returns:
    thread
  Since:
    2.0

### getVariables

    public IVariable[] getVariables()
                             throws DebugException

  Returns the visible variables in this stack frame. An empty collection is returned if there are no visible variables.

  Returns:
    collection of visible variables
  Throws:
    `DebugException` - if this method fails. Reasons include:
    - Failure communicating with the debug target. The DebugException's status code contains the underlying exception responsible for the failure.
  Since:
    2.0

### hasVariables

    public boolean hasVariables()
                         throws DebugException

  Returns whether this stack frame currently contains any visible variables.

  Returns:
    whether this stack frame currently contains any visible variables
  Throws:
    `DebugException` - if this method fails. Reasons include:
    - Failure communicating with the debug target. The DebugException's status code contains the underlying exception responsible for the failure.
  Since:
    2.0

### getLineNumber

    public int getLineNumber()
                      throws DebugException

  Returns the line number of the instruction pointer in this stack frame that corresponds to a line in an associated source element, or `-1` if line number information is unavailable.

  Returns:
    line number of instruction pointer in this stack frame, or `-1` if line number information is unavailable
  Throws:
    `DebugException` - if this method fails. Reasons include:
    - Failure communicating with the debug target. The DebugException's status code contains the underlying exception responsible for the failure.

### getCharStart

    public int getCharStart()
                     throws DebugException

  Returns the index of the first character in the associated source element that corresponds to the current location of the instruction pointer in this stack frame, or `-1` if the information is unavailable.

  If a debug model supports expression level stepping, the start/end character ranges are used to highlight the expression within a line that is being executed.

  Returns:
    index of the first character in the associated source element that corresponds to the current location of the instruction pointer in this stack frame, or `-1` if the information is unavailable
  Throws:
    `DebugException` - if this method fails. Reasons include:
    - Failure communicating with the debug target. The DebugException's status code contains the underlying exception responsible for the failure.
  Since:
    2.0

### getCharEnd

    public int getCharEnd()
                   throws DebugException

  Returns the index of the last character in the associated source element that corresponds to the current location of the instruction pointer in this stack frame, or `-1` if the information is unavailable.

  If a debug model supports expression level stepping, the start/end character ranges are used to highlight the expression within a line that is being executed.

  Returns:
    index of the last character in the associated source element that corresponds to the current location of the instruction pointer in this stack frame, or `-1` if the information is unavailable
  Throws:
    `DebugException` - if this method fails. Reasons include:
    - Failure communicating with the debug target. The DebugException's status code contains the underlying exception responsible for the failure.
  Since:
    2.0

### getName

    public String getName()
                   throws DebugException

  Returns the name of this stack frame. Name format is debug model specific, and should be specified by a debug model.

  Returns:
    this frame's name
  Throws:
    `DebugException` - if this method fails. Reasons include:
    - Failure communicating with the debug target. The DebugException's status code contains the underlying exception responsible for the failure.

### getRegisterGroups

    public IRegisterGroup[] getRegisterGroups()
                                       throws DebugException

  Returns the register groups assigned to this stack frame, or an empty collection if no register groups are assigned to this stack frame.

  Returns:
    the register groups assigned to this stack frame or an empty collection if no register groups are assigned to this stack frame
  Throws:
    `DebugException` - if this method fails. Reasons include:
    - Failure communicating with the debug target. The DebugException's status code contains the underlying exception responsible for the failure.
  Since:
    2.0

### hasRegisterGroups

    public boolean hasRegisterGroups()
                              throws DebugException

  Returns whether this stack frame contains any register groups.

  Returns:
    whether this stack frame contains any visible register groups
  Throws:
    `DebugException` - if this method fails. Reasons include:
    - Failure communicating with the debug target. The DebugException's status code contains the underlying exception responsible for the failure.
  Since:
    2.0

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2004. All rights reserved.