Struct lldb::SBThread [] [src]

pub struct SBThread {
    pub raw: SBThreadRef,
}

A thread of execution.

SBThreads can be referred to by their ID, which maps to the system specific thread identifier, or by IndexID. The ID may or may not be unique depending on whether the system reuses its thread identifiers. The IndexID is a monotonically increasing identifier that will always uniquely reference a particular thread, and when that thread goes away it will not be reused.

Thread State

...

Execution Control

...

Frames

The thread contains stack frames. These can be iterated over with frames:

// Iterate over the frames...
for frame in thread.frames() {
    println!("Hello {:?}!", frame);
}
// Or collect them into a vector!
let frames = thread.frames().collect::<Vec<SBFrame>>();

Some functions operate on the 'currently selected frame'. This can retrieved via selected_frame and set via set_selected_frame.

Events

...

Fields

The underlying raw SBThreadRef.

Methods

impl SBThread
[src]

[src]

Construct a new SBThread.

[src]

Construct a new Some(SBThread) or None.

[src]

Check whether or not this is a valid SBThread value.

[src]

[src]

Get the stop reason for this thread.

[src]

The return value from the last stop if we just stopped due to stepping out of a function

[src]

Returns a unique thread identifier for the current SBThread that will remain constant throughout the thread's lifetime in this process and will not be reused by another thread during this process lifetime. On Mac OS X systems, this is a system-wide unique thread identifier; this identifier is also used by other tools like sample which helps to associate data from those tools with lldb. See related SBThread::index_id.

[src]

Return the index number for this SBThread. The index number is the same thing that a user gives as an argument to thread select in the command line lldb.

These numbers start at 1 (for the first thread lldb sees in a debug session) and increments up throughout the process lifetime. An index number will not be reused for a different thread later in a process - thread 1 will always be associated with the same thread. See related SBThread::thread_id.

[src]

The name associated with the thread, if any.

[src]

Return the queue associated with this thread, if any.

If this SBThread is actually a history thread, then there may be a queue ID and name available, but not a full SBQueue as the individual attributes may have been saved, but without enough information to reconstitute the entire SBQueue at that time.

[src]

Return the queue name associated with this thread, if any.

For example, this would report a libdispatch (Grand Central Dispatch) queue name.

[src]

Return the dispatch_queue_id for this thread, if any.

For example, this would report a libdispatch (Grand Central Dispatch) queue ID.

[src]

Set the user resume state for this thread to suspend.

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 (step_over, step_into, step_out, step_instruction, run_to_address), the thread will not be allowed to run and these functions will simply return.

[src]

Set the user resume state for this to allow it to run again.

See the discussion on suspend for further details.

[src]

Is this thread set to the suspended user resume state?

See the discussion on suspend for further details.

[src]

Is this thread stopped?

[src]

Get an iterator over the frames known to this thread instance.

[src]

Get the currently selected frame for this thread.

[src]

Set the currently selected frame for this thread. This takes a frame index.

[src]

Get the process in which this thread is running.

[src]

If the given event is a thread event, return it as an SBThreadEvent. Otherwise, return None.

Trait Implementations

impl Debug for SBThread
[src]

[src]

Formats the value using the given formatter.

impl Drop for SBThread
[src]

[src]

Executes the destructor for this type. Read more