pub struct SBThread {
    pub raw: SBThreadRef,
}
Expand description

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 SBThread::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 SBThread::selected_frame() and set via SBThread::set_selected_frame().

Events

Fields

raw: SBThreadRef

The underlying raw SBThreadRef.

Implementations

Check whether or not this is a valid SBThread value.

Get the stop reason for this thread.

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

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 macOS 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.

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.

The name associated with the thread, if any.

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.

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

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

Return the dispatch_queue_id for this thread, if any.

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

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_execution() 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.

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

See the discussion on SBThread::suspend() for further details.

Is this thread set to the suspended user resume state?

See the discussion on SBThread::suspend() for further details.

Is this thread stopped?

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

Get the currently selected frame for this thread.

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

Get the process in which this thread is running.

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

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Executes the destructor for this type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.