# Interface: com.pnfsoftware.jeb.core.units.code.debug.IDebuggerThread

Standard interface for a thread object managed by a debugger.

## Method: canResume
- return type: `boolean`


## Method: canStepInto
- return type: `boolean`


## Method: canStepOut
- return type: `boolean`


## Method: canStepOver
- return type: `boolean`


## Method: canSuspend
- return type: `boolean`


## Method: getAddress
- return type: `java.lang.String`

Description: Retrieve the address of the top frame of this thread.
return: thread location, or null

## Method: getFrame
- parameter: `index`, type: `int`
- return type: `com.pnfsoftware.jeb.core.units.code.debug.IDebuggerThreadStackFrame`

Description: Get a stack frame by index.
parameter: index: 0\-based frame index
return: the requested stack frame, null if invalid or on error

## Method: getFrameAddresses
- parameter: `form`, type: `com.pnfsoftware.jeb.core.units.AddressForm`
- return type: `java.util.List<java.lang.String>`

Description: Get the addresses for all frames of this suspended thread.
parameter: form: 
return: list of addresses, the first one being the top frame's

## Method: getFrameCount
- return type: `int`

Description: Get the number of frames in this thread.
return: frame count, \-1 on error

## Method: getFrames
- return type: `java.util.List<? extends com.pnfsoftware.jeb.core.units.code.debug.IDebuggerThreadStackFrame>`

Description: Get the list of stack frames in the current thread. Most debuggers would require the thread be suspended for this operation to succeed. The first item in the list is the top\-level stack\-frame.
return: stack frames, or null on error

## Method: getId
- return type: `long`

Description: Get this thread id.
return: the thread id

## Method: getName
- return type: `java.lang.String`

Description: Get this thread name.
return: the name, null if none

## Method: getRegisters
- return type: `com.pnfsoftware.jeb.core.units.code.asm.processor.IRegisterData`

Description: Get the registers of a native unit \(x86, arm...\) or null when it is a VM thread \(JVM\).
return: the list of registers

## Method: getStatus
- return type: `com.pnfsoftware.jeb.core.units.code.debug.DebuggerThreadStatus`

Description: Get this thread status.
return: the status, never null

## Method: getTopFrame
- return type: `com.pnfsoftware.jeb.core.units.code.debug.IDebuggerThreadStackFrame`

Description: 
return: 

## Method: resume
- return type: `boolean`

Description: Resume this thread.
return: true if the thread was resumed

## Method: setRegisters
- parameter: `registers`, type: `com.pnfsoftware.jeb.core.units.code.asm.processor.IRegisterData`
- return type: `boolean`

Description: Set native register data.
parameter: registers: register data
return: true if the registers were set

## Method: stepInto
- return type: `boolean`

Description: Step one instruction, stepping inside sub\-routine branching instructions. 

 Implementation note: currently, debuggers implement `step()` as asynchronous operations. A success return value means that the operation partially succeeded. A client should wait for a breakpoint\-hit event to make sure that the operation was successful.
return: true if the operation succeeded

## Method: stepOut
- return type: `boolean`

Description: Step until the currently executed sub\-routine returns. 

 Implementation note: currently, debuggers implement `step()` as asynchronous operations. A success return value means that the operation partially succeeded. A client should wait for a breakpoint\-hit event to make sure that the operation was successful.
return: true if the operation succeeded

## Method: stepOver
- return type: `boolean`

Description: Step one instruction, stepping over sub\-routine branching instructions. 

 Implementation note: currently, debuggers implement `step()` as asynchronous operations. A success return value means that the operation partially succeeded. A client should wait for a breakpoint\-hit event to make sure that the operation was successful.
return: true if the operation succeeded

## Method: suspend
- return type: `boolean`

Description: Suspend this thread.
return: true if the thread was suspended

