C# Class LLDB.Thread

Inheritance: IDisposable
Show file Open project: tritao/LLDBSharp

Public Properties

Property Type Description
NativeToManagedMap Thread>.System.Collections.Concurrent.ConcurrentDictionary

Protected Properties

Property Type Description
__OriginalVTables void*[]
__PointerAdjustment int
__ownsNativeInstance bool

Public Methods

Method Description
Clear ( ) : void
Dispose ( ) : void
Equals ( object obj ) : bool
EventIsThreadEvent ( LLDB @event ) : bool
GetDescription ( LLDB description ) : bool
GetExtendedBacktraceThread ( string type ) : LLDB.Thread
GetFrameAtIndex ( uint idx ) : LLDB.Frame
GetHashCode ( ) : int
GetInfoItemByPathAsString ( string path, LLDB strm ) : bool
GetProcess ( ) : LLDB.Process
GetQueue ( ) : LLDB.Queue
GetSelectedFrame ( ) : LLDB.Frame
GetStackFrameFromEvent ( LLDB @event ) : LLDB.Frame
GetStatus ( LLDB status ) : bool
GetStopDescription ( sbyte dst, uint dst_len ) : uint
GetStopReasonDataAtIndex ( uint idx ) : ulong

Get information associated with a stop reason.

Breakpoint stop reasons will have data that consists of pairs of

breakpoint IDs followed by the breakpoint location IDs (they always come

in pairs).

Stop Reason Count Data Type

======================== ===== =========================================

eStopReasonNone 0

eStopReasonTrace 0

eStopReasonBreakpoint N duple: {breakpoint id, location id}

eStopReasonWatchpoint 1 watchpoint id

eStopReasonSignal 1 unix signal number

eStopReasonException N exception data

eStopReasonExec 0

eStopReasonPlanComplete 0

GetStopReasonExtendedBacktraces ( LLDB type ) : LLDB.ThreadCollection
GetStopReasonExtendedInfoAsJSON ( LLDB stream ) : bool
GetStopReturnValue ( ) : LLDB.Value
GetThreadFromEvent ( LLDB @event ) : LLDB.Thread
IsStopped ( ) : bool
IsSuspended ( ) : bool
IsValid ( ) : bool
JumpToLine ( LLDB file_spec, uint line ) : LLDB.Error
Resume ( ) : bool
ReturnFromFrame ( LLDB frame, LLDB return_value ) : LLDB.Error
RunToAddress ( ulong addr ) : void
SafeToCallFunctions ( ) : bool
SetSelectedFrame ( uint frame_idx ) : LLDB.Frame
StepInstruction ( bool step_over ) : void
StepInto ( LLDB stop_other_threads ) : void
StepInto ( string target_name, LLDB stop_other_threads ) : void
StepInto ( string target_name, uint end_line, LLDB error, LLDB stop_other_threads ) : void
StepOut ( ) : void
StepOutOfFrame ( LLDB frame ) : void
StepOver ( LLDB stop_other_threads ) : void
StepOverUntil ( LLDB frame, LLDB file_spec, uint line ) : LLDB.Error
StepUsingScriptedThreadPlan ( string script_class_name ) : LLDB.Error
Suspend ( ) : bool

LLDB currently supports process centric debugging which means when any

thread in a process stops, all other threads are stopped. The Suspend()

call here tells our process to suspend a thread and not let it run when

the other threads in a process are allowed to run. So when

SBProcess::Continue() is called, any threads that aren't suspended will

be allowed to run. If any of the SBThread functions for stepping are

called (StepOver, StepInto, StepOut, StepInstruction, RunToAddress), the

thread will not be allowed to run and these functions will simply return.

Eventually we plan to add support for thread centric debugging where

each thread is controlled individually and each thread would broadcast

its state, but we haven't implemented this yet.

Likewise the SBThread::Resume() call will again allow the thread to run

when the process is continued.

Suspend() and Resume() functions are not currently reference counted, if

anyone has the need for them to be reference counted, please let us

know.

Thread ( ) : System
Thread ( LLDB thread ) : System
__CreateInstance ( Thread native, bool skipVTables = false ) : Thread
__CreateInstance ( global native, bool skipVTables = false ) : Thread
operator ( ) : bool

Protected Methods

Method Description
Dispose ( bool disposing ) : void
Thread ( void native, bool skipVTables = false ) : System

Private Methods

Method Description
Thread ( Thread native, bool skipVTables = false ) : System
__CopyValue ( Thread native ) : void*

Method Details

Clear() public method

public Clear ( ) : void
return void

Dispose() public method

public Dispose ( ) : void
return void

Dispose() protected method

protected Dispose ( bool disposing ) : void
disposing bool
return void

Equals() public method

public Equals ( object obj ) : bool
obj object
return bool

EventIsThreadEvent() public static method

public static EventIsThreadEvent ( LLDB @event ) : bool
@event LLDB
return bool

GetDescription() public method

public GetDescription ( LLDB description ) : bool
description LLDB
return bool

GetExtendedBacktraceThread() public method

public GetExtendedBacktraceThread ( string type ) : LLDB.Thread
type string
return LLDB.Thread

GetFrameAtIndex() public method

public GetFrameAtIndex ( uint idx ) : LLDB.Frame
idx uint
return LLDB.Frame

GetHashCode() public method

public GetHashCode ( ) : int
return int

GetInfoItemByPathAsString() public method

public GetInfoItemByPathAsString ( string path, LLDB strm ) : bool
path string
strm LLDB
return bool

GetProcess() public method

public GetProcess ( ) : LLDB.Process
return LLDB.Process

GetQueue() public method

public GetQueue ( ) : LLDB.Queue
return LLDB.Queue

GetSelectedFrame() public method

public GetSelectedFrame ( ) : LLDB.Frame
return LLDB.Frame

GetStackFrameFromEvent() public static method

public static GetStackFrameFromEvent ( LLDB @event ) : LLDB.Frame
@event LLDB
return LLDB.Frame

GetStatus() public method

public GetStatus ( LLDB status ) : bool
status LLDB
return bool

GetStopDescription() public method

public GetStopDescription ( sbyte dst, uint dst_len ) : uint
dst sbyte
dst_len uint
return uint

GetStopReasonDataAtIndex() public method

Get information associated with a stop reason.

Breakpoint stop reasons will have data that consists of pairs of

breakpoint IDs followed by the breakpoint location IDs (they always come

in pairs).

Stop Reason Count Data Type

======================== ===== =========================================

eStopReasonNone 0

eStopReasonTrace 0

eStopReasonBreakpoint N duple: {breakpoint id, location id}

eStopReasonWatchpoint 1 watchpoint id

eStopReasonSignal 1 unix signal number

eStopReasonException N exception data

eStopReasonExec 0

eStopReasonPlanComplete 0

public GetStopReasonDataAtIndex ( uint idx ) : ulong
idx uint
return ulong

GetStopReasonExtendedBacktraces() public method

public GetStopReasonExtendedBacktraces ( LLDB type ) : LLDB.ThreadCollection
type LLDB
return LLDB.ThreadCollection

GetStopReasonExtendedInfoAsJSON() public method

public GetStopReasonExtendedInfoAsJSON ( LLDB stream ) : bool
stream LLDB
return bool

GetStopReturnValue() public method

public GetStopReturnValue ( ) : LLDB.Value
return LLDB.Value

GetThreadFromEvent() public static method

public static GetThreadFromEvent ( LLDB @event ) : LLDB.Thread
@event LLDB
return LLDB.Thread

IsStopped() public method

public IsStopped ( ) : bool
return bool

IsSuspended() public method

public IsSuspended ( ) : bool
return bool

IsValid() public method

public IsValid ( ) : bool
return bool

JumpToLine() public method

public JumpToLine ( LLDB file_spec, uint line ) : LLDB.Error
file_spec LLDB
line uint
return LLDB.Error

Resume() public method

public Resume ( ) : bool
return bool

ReturnFromFrame() public method

public ReturnFromFrame ( LLDB frame, LLDB return_value ) : LLDB.Error
frame LLDB
return_value LLDB
return LLDB.Error

RunToAddress() public method

public RunToAddress ( ulong addr ) : void
addr ulong
return void

SafeToCallFunctions() public method

public SafeToCallFunctions ( ) : bool
return bool

SetSelectedFrame() public method

public SetSelectedFrame ( uint frame_idx ) : LLDB.Frame
frame_idx uint
return LLDB.Frame

StepInstruction() public method

public StepInstruction ( bool step_over ) : void
step_over bool
return void

StepInto() public method

public StepInto ( LLDB stop_other_threads ) : void
stop_other_threads LLDB
return void

StepInto() public method

public StepInto ( string target_name, LLDB stop_other_threads ) : void
target_name string
stop_other_threads LLDB
return void

StepInto() public method

public StepInto ( string target_name, uint end_line, LLDB error, LLDB stop_other_threads ) : void
target_name string
end_line uint
error LLDB
stop_other_threads LLDB
return void

StepOut() public method

public StepOut ( ) : void
return void

StepOutOfFrame() public method

public StepOutOfFrame ( LLDB frame ) : void
frame LLDB
return void

StepOver() public method

public StepOver ( LLDB stop_other_threads ) : void
stop_other_threads LLDB
return void

StepOverUntil() public method

public StepOverUntil ( LLDB frame, LLDB file_spec, uint line ) : LLDB.Error
frame LLDB
file_spec LLDB
line uint
return LLDB.Error

StepUsingScriptedThreadPlan() public method

public StepUsingScriptedThreadPlan ( string script_class_name ) : LLDB.Error
script_class_name string
return LLDB.Error

Suspend() public method

LLDB currently supports process centric debugging which means when any

thread in a process stops, all other threads are stopped. The Suspend()

call here tells our process to suspend a thread and not let it run when

the other threads in a process are allowed to run. So when

SBProcess::Continue() is called, any threads that aren't suspended will

be allowed to run. If any of the SBThread functions for stepping are

called (StepOver, StepInto, StepOut, StepInstruction, RunToAddress), the

thread will not be allowed to run and these functions will simply return.

Eventually we plan to add support for thread centric debugging where

each thread is controlled individually and each thread would broadcast

its state, but we haven't implemented this yet.

Likewise the SBThread::Resume() call will again allow the thread to run

when the process is continued.

Suspend() and Resume() functions are not currently reference counted, if

anyone has the need for them to be reference counted, please let us

know.

public Suspend ( ) : bool
return bool

Thread() public method

public Thread ( ) : System
return System

Thread() public method

public Thread ( LLDB thread ) : System
thread LLDB
return System

Thread() protected method

protected Thread ( void native, bool skipVTables = false ) : System
native void
skipVTables bool
return System

__CreateInstance() public static method

public static __CreateInstance ( Thread native, bool skipVTables = false ) : Thread
native Thread
skipVTables bool
return Thread

__CreateInstance() public static method

public static __CreateInstance ( global native, bool skipVTables = false ) : Thread
native global
skipVTables bool
return Thread

operator() public static method

public static operator ( ) : bool
return bool

Property Details

NativeToManagedMap public static property

public static System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap
return Thread>.System.Collections.Concurrent.ConcurrentDictionary

__OriginalVTables protected property

protected void*[] __OriginalVTables
return void*[]

__PointerAdjustment protected property

protected int __PointerAdjustment
return int

__ownsNativeInstance protected property

protected bool __ownsNativeInstance
return bool