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:

- compat/non_win/dbghelp.h