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