Crashpad
Public Attributes | List of all members
MINIDUMP_EXCEPTION Struct Reference

Information about an exception that occurred in the process. More...

#include "dbghelp.h"

Public Attributes

uint32_t ExceptionCode
 The top-level exception code identifying the exception, in operating system-specific values. More...
 
uint32_t ExceptionFlags
 Additional exception flags that further identify the exception, in operating system-specific values. More...
 
uint64_t ExceptionRecord
 An address, in the address space of the process that this minidump file contains a snapshot of, of another MINIDUMP_EXCEPTION. This field is used for nested exceptions.
 
uint64_t ExceptionAddress
 The address that caused the exception. More...
 
uint32_t NumberParameters
 The number of valid elements in ExceptionInformation.
 
uint32_t __unusedAlignment
 
uint64_t ExceptionInformation [EXCEPTION_MAXIMUM_PARAMETERS]
 Additional information about the exception, specific to the operating system and possibly the ExceptionCode. More...
 

Detailed Description

Information about an exception that occurred in the process.

Member Data Documentation

◆ ExceptionAddress

uint64_t MINIDUMP_EXCEPTION::ExceptionAddress

The address that caused 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.

◆ ExceptionCode

uint32_t MINIDUMP_EXCEPTION::ExceptionCode

The top-level exception code identifying the exception, in operating system-specific values.

For macOS minidumps, 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 ExceptionInformation.

For Windows minidumps, this will be an EXCEPTION_* exception type, such as EXCEPTION_ACCESS_VIOLATION.

Note
This field is named ExceptionCode, but what is known as the “exception code” on macOS/Mach is actually stored in the ExceptionFlags field of a minidump file.
Todo:
Document the possible values by OS. There may be OS-specific enums in minidump_extensions.h.

◆ ExceptionFlags

uint32_t MINIDUMP_EXCEPTION::ExceptionFlags

Additional exception flags that further identify the exception, in operating system-specific values.

For macOS minidumps, this will be the value of the exception code at index 0 as received by a Mach exception handler, except:

  • For exception type EXC_CRASH generated from another preceding exception, the original exception code will appear here, not the code as received by the Mach exception handler.
  • For exception types EXC_RESOURCE and EXC_GUARD, the high 32 bits of the code received by the Mach exception handler will appear here.

In all cases for macOS minidumps, the code as it was received by the Mach exception handler will appear at index 1 of ExceptionInformation.

For Windows minidumps, this will either be 0 if the exception is continuable, or EXCEPTION_NONCONTINUABLE to indicate a noncontinuable exception.

Todo:
Document the possible values by OS. There may be OS-specific enums in minidump_extensions.h.

◆ ExceptionInformation

uint64_t MINIDUMP_EXCEPTION::ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]

Additional information about the exception, specific to the operating system and possibly the ExceptionCode.

For macOS minidumps, this will contain the exception type as received by a Mach exception handler and the values of the codes[0] and codes[1] (exception code and subcode) parameters supplied to the Mach exception handler. Unlike ExceptionCode and ExceptionFlags, the values received by a Mach exception handler are used directly here even for the EXC_CRASH, EXC_RESOURCE, and EXC_GUARD exception types. For Windows, these are additional arguments (if any) as provided to RaiseException().


The documentation for this struct was generated from the following file: