class ExceptionHandle
Defined at line 22 of file ../../src/developer/debug/debug_agent/exception_handle.h
ExceptionHandle abstracts zx::exception, allowing for a more straightforward implementation in
tests in overrides of this class.
Public Methods
void ExceptionHandle ()
Defined at line 27 of file ../../src/developer/debug/debug_agent/exception_handle.h
std::unique_ptr<ThreadHandle> GetThreadHandle ()
Returns a handle to the excepting thread. Will return a null pointer on failure.
std::unique_ptr<ProcessHandle> GetProcessHandle ()
debug_ipc::ExceptionType GetType (const ThreadHandle & thread)
Returns the type of the exception for this and the current thread state.
This requires getting the debug registers for the thread so the thread handle is passed in.
This could be implemented without the parameter because this object can create thread handles,
but that would be less efficient and all callers currently have existing ThreadHandles.
fit::result<debug::Status, Resolution> GetResolution ()
Returns the current resolution for the exception.
debug::Status SetResolution (Resolution resolution)
fit::result<debug::Status, debug_ipc::ExceptionStrategy> GetStrategy ()
Returns the associated the exception handling strategy.
debug::Status SetStrategy (debug_ipc::ExceptionStrategy strategy)
Sets the handling strategy.
debug_ipc::ExceptionRecord GetRecord ()
Returns this exception info for IPC.
Race conditions or other errors can conspire to mean the exception records are not valid. In
order to differentiate this case from "0" addresses, ExceptionRecord.valid will be set to
false on failure.
uint64_t GetPid ()
Returns the raw process id from the low level exception object.
uint64_t GetTid ()
Returns the raw thread id from the low level exception object.
void ~ExceptionHandle ()
Defined at line 28 of file ../../src/developer/debug/debug_agent/exception_handle.h
Enumerations
enum Resolution
| Name | Value |
|---|---|
| kTryNext | 0 |
| kHandled | 1 |
How this exception should be resolved when closed.
Defined at line 25 of file ../../src/developer/debug/debug_agent/exception_handle.h