class DebuggedThread
Defined at line 26 of file ../../src/developer/debug/debug_agent/debugged_thread.h
Public Methods
const DebuggedProcess * process ()
Defined at line 32 of file ../../src/developer/debug/debug_agent/debugged_thread.h
zx_koid_t koid ()
Defined at line 34 of file ../../src/developer/debug/debug_agent/debugged_thread.h
const ThreadHandle & thread_handle ()
Defined at line 36 of file ../../src/developer/debug/debug_agent/debugged_thread.h
ThreadHandle & thread_handle ()
Defined at line 37 of file ../../src/developer/debug/debug_agent/debugged_thread.h
bool is_client_suspended ()
Returns true if this thread is currently suspended from the perspective of the client. See
ClientSuspend().
Defined at line 41 of file ../../src/developer/debug/debug_agent/debugged_thread.h
NativeThreadHandle & handle ()
TODO(brettw) remove this and have all callers use thread_handle().
Defined at line 44 of file ../../src/developer/debug/debug_agent/debugged_thread.h
const NativeThreadHandle & handle ()
Defined at line 45 of file ../../src/developer/debug/debug_agent/debugged_thread.h
ExceptionHandle * exception_handle ()
Defined at line 47 of file ../../src/developer/debug/debug_agent/debugged_thread.h
const ExceptionHandle * exception_handle ()
Defined at line 48 of file ../../src/developer/debug/debug_agent/debugged_thread.h
void set_exception_handle (std::unique_ptr<ExceptionHandle> exception)
Defined at line 49 of file ../../src/developer/debug/debug_agent/debugged_thread.h
void DebuggedThread (DebugAgent * , DebuggedProcess * process, std::unique_ptr<ThreadHandle> handle)
Defined at line 83 of file ../../src/developer/debug/debug_agent/debugged_thread.cc
void ~DebuggedThread ()
Defined at line 90 of file ../../src/developer/debug/debug_agent/debugged_thread.cc
fxl::WeakPtr<DebuggedThread> GetWeakPtr ()
Defined at line 92 of file ../../src/developer/debug/debug_agent/debugged_thread.cc
void OnException (std::unique_ptr<ExceptionHandle> exception_handle)
Defined at line 94 of file ../../src/developer/debug/debug_agent/debugged_thread.cc
bool in_exception ()
Defined at line 119 of file ../../src/developer/debug/debug_agent/debugged_thread.h
bool stepping_over_breakpoint ()
Defined at line 121 of file ../../src/developer/debug/debug_agent/debugged_thread.h
void set_stepping_over_breakpoint (bool so)
Defined at line 122 of file ../../src/developer/debug/debug_agent/debugged_thread.h
void ClientResume (const debug_ipc::ResumeRequest & request)
Resumes execution of the thread from the perspective of the client. The thread should currently
be in a stopped state. If it's not stopped from the client's perspective (client suspend or in
an exception), this will be ignored.
Defined at line 365 of file ../../src/developer/debug/debug_agent/debugged_thread.cc
void InternalResumeException ()
Low-level resume the thread from an exception. Most callers will want ClientResume or
ResumeFromException(). Calling this will bypass single step requests and stepping over
breakpoint logic. Will be a no-op if the thread is not in an exception. This is public because
it needs to be called by the breakpoint code when stepping over breakpoints.
Defined at line 386 of file ../../src/developer/debug/debug_agent/debugged_thread.cc
void ClientSuspend (bool synchronous)
Pauses execution of the thread.
- ClientSuspend() pauses from the perspective of the client. This means that the client will
be in charge of resuming this thread. It does nothing if the thread is already suspended
from the perspective of the client.
- InternalSuspend() pauses for internal users (like breakpoints being stepped over) and the
thread will remain suspended as long as the returned SuspendHandle is alive.
For the thread to be running, there must be no client suspension nor any SuspendHandles
live.
Suspending happens asynchronously so the thread will not necessarily have stopped when this
returns. Set the |synchronous| flag for blocking on the suspended signal and make this call
block until the thread is suspended. See also ThreadHandle::WaitForSuspension().
Defined at line 435 of file ../../src/developer/debug/debug_agent/debugged_thread.cc
std::unique_ptr<SuspendHandle> InternalSuspend (bool synchronous)
Defined at line 447 of file ../../src/developer/debug/debug_agent/debugged_thread.cc
TickTimePoint DefaultSuspendDeadline ()
The typical suspend deadline users should use when suspending from now.
Defined at line 454 of file ../../src/developer/debug/debug_agent/debugged_thread.cc
debug_ipc::ThreadRecord GetThreadRecord (debug_ipc::ThreadRecord::StackAmount stack_amount, std::optional<GeneralRegisters> regs)
Fills the thread status record. If full_stack is set, a full backtrace will be generated,
otherwise a minimal one will be generated.
If the optional registers is set, will contain the current registers of the thread. If null,
these will be fetched automatically (this is an optimization for cases where the caller has
already requested registers).
Defined at line 463 of file ../../src/developer/debug/debug_agent/debugged_thread.cc
std::vector<debug::RegisterValue> ReadRegisters (const std::vector<debug::RegisterCategory> & cats_to_get)
Register reading and writing. The "write" command also returns the contents of the register
categories written do.
Defined at line 499 of file ../../src/developer/debug/debug_agent/debugged_thread.cc
std::vector<debug::RegisterValue> WriteRegisters (const std::vector<debug::RegisterValue> & regs)
Defined at line 504 of file ../../src/developer/debug/debug_agent/debugged_thread.cc
void SendThreadNotification ()
Sends a notification to the client about the state of this thread.
Defined at line 534 of file ../../src/developer/debug/debug_agent/debugged_thread.cc
void WillDeleteProcessBreakpoint (ProcessBreakpoint * bp)
Notification that a ProcessBreakpoint is about to be deleted.
Defined at line 543 of file ../../src/developer/debug/debug_agent/debugged_thread.cc