class ExceptionSnapshot
Defined at line 30 of file ../../third_party/crashpad/src/snapshot/exception_snapshot.h
An abstract interface to a snapshot representing an exception that a
snapshot process sustained and triggered the snapshot being taken.
Public Methods
const CPUContext * Context ()
Returns a CPUContext object corresponding to the exception thread’s
CPU context at the time of the exception.
The caller does not take ownership of this object, it is scoped to the
lifetime of the ThreadSnapshot object that it was obtained from.
uint64_t ThreadID ()
Returns the thread identifier of the thread that triggered the
exception.
This value can be compared to ThreadSnapshot::ThreadID() to associate an
ExceptionSnapshot object with the ThreadSnapshot that contains a snapshot
of the thread that triggered the exception.
uint32_t Exception ()
Returns the top-level exception code identifying the exception.
This is an operating system-specific value.
For macOS, this will be an
"EXC_*" exception type, such as
`EXC_BAD_ACCESS`. `EXC_CRASH` will not appear here for exceptions
processed as `EXC_CRASH` when generated from another preceding exception:
the original exception code will appear instead. The exception type as it
was received will appear at index 0 of Codes().
For Windows, this will be an `EXCEPTION_*` exception type, such as
`EXCEPTION_ACCESS_VIOLATION`.
uint32_t ExceptionInfo ()
Returns the second-level exception code identifying the exception.
This is an operating system-specific value.
For macOS, this will be the value of the exception code at index 0 as
received by a Mach exception handler, except:
* For `EXC_CRASH` exceptions generated from another preceding exception,
the original exception code will appear here, not the code as received
by the Mach exception handler.
* For `EXC_RESOURCE` and `EXC_GUARD` exceptions, the high 32 bits of the
exception code at index 0 will appear here.
In all cases on macOS, the full exception code at index 0 as it was
received will appear at index 1 of Codes().
On Windows, this will either be `0` if the exception is continuable, or
`EXCEPTION_NONCONTINUABLE` to indicate a noncontinuable exception.
uint64_t ExceptionAddress ()
Returns the address that triggered the exception.
This may be the address that caused a fault on data access, or it may be
the instruction pointer that contained an offending instruction. For
exceptions where this value cannot be determined, it will be `0`.
For macOS, this will be the value of the exception code at index 1 as
received by a Mach exception handler.
const std::vector<uint64_t> & Codes ()
Returns a series of operating system-specific exception codes.
The precise interpretation of these codes is specific to the snapshot
operating system. These codes may provide a duplicate of information
available elsewhere, they may extend information available elsewhere, or
they may not be present at all. In this case, an empty vector will be
returned.
For macOS, this will be a vector containing the original exception type
and the values of `code[0]` and `code[1]` as received by a Mach exception
handler.
For Windows, these are additional arguments (if any) as provided to
`RaiseException()`. See the documentation for `ExceptionInformation` in
`EXCEPTION_RECORD`.
std::vector<const MemorySnapshot *> ExtraMemory ()
Returns a vector of additional memory blocks that should be
included in a minidump.
Returns
A vector of MemorySnapshot objects that will be included in the
crash dump. The caller does not take ownership of these objects, they
are scoped to the lifetime of the ThreadSnapshot object that they
were obtained from.
void ~ExceptionSnapshot ()
Defined at line 32 of file ../../third_party/crashpad/src/snapshot/exception_snapshot.h