dbghelp.h File Reference
`#include <stdint.h>`
`#include "base/strings/string16.h"`
`#include "compat/non_win/timezoneapi.h"`
`#include "compat/non_win/verrsrc.h"`
`#include "compat/non_win/winnt.h"`

## Classes

struct | MINIDUMP_LOCATION_DESCRIPTOR
| A pointer to a structure or union within a minidump file. More...
struct | MINIDUMP_MEMORY_DESCRIPTOR
| A pointer to a snapshot of a region of memory contained within a minidump file. More...
struct | MINIDUMP_HEADER
| The top-level structure identifying a minidump file. More...
struct | MINIDUMP_DIRECTORY
| A pointer to a stream within a minidump file. More...
struct | MINIDUMP_STRING
| A variable-length UTF-16-encoded string carried within a minidump file. More...
union | CPU_INFORMATION
| Information about the CPU (or CPUs) that ran the process that the minidump file contains a snapshot of. More...
struct | MINIDUMP_SYSTEM_INFO
| Information about the system that hosted the process that the minidump file contains a snapshot of. More...
struct | MINIDUMP_THREAD
| Information about a specific thread within the process. More...
struct | MINIDUMP_THREAD_LIST
| Information about all threads within the process. More...
struct | MINIDUMP_EXCEPTION
| Information about an exception that occurred in the process. More...
struct | MINIDUMP_EXCEPTION_STREAM
| Information about the exception that triggered a minidump file’s generation. More...
struct | MINIDUMP_MODULE
| Information about a specific module loaded within the process at the time the snapshot was taken. More...
struct | MINIDUMP_MODULE_LIST
| Information about all modules loaded within the process at the time the snapshot was taken. More...
struct | MINIDUMP_MEMORY_LIST
| Information about memory regions within the process. More...
struct | MINIDUMP_HANDLE_DESCRIPTOR
| Contains the state of an individual system handle at the time the snapshot was taken. This structure is Windows-specific. More...
struct | MINIDUMP_HANDLE_DESCRIPTOR_2
| Contains the state of an individual system handle at the time the snapshot was taken. This structure is Windows-specific. More...
struct | MINIDUMP_UNLOADED_MODULE
| Information about a specific module that was recorded as being unloaded at the time the snapshot was taken. More...
struct | MINIDUMP_UNLOADED_MODULE_LIST
| Information about all modules recorded as unloaded when the snapshot was taken. More...
struct | XSTATE_CONFIG_FEATURE_MSC_INFO
| Information about XSAVE-managed state stored within CPU-specific context structures. More...
struct | MINIDUMP_MISC_INFO
| Information about the process that the minidump file contains a snapshot of, as well as the system that hosted that process. More...
struct | MINIDUMP_MISC_INFO_2
| Information about the process that the minidump file contains a snapshot of, as well as the system that hosted that process. More...
struct | MINIDUMP_MISC_INFO_3
| Information about the process that the minidump file contains a snapshot of, as well as the system that hosted that process. More...
struct | MINIDUMP_MISC_INFO_4
| Information about the process that the minidump file contains a snapshot of, as well as the system that hosted that process. More...
struct | MINIDUMP_MISC_INFO_5
| Information about the process that the minidump file contains a snapshot of, as well as the system that hosted that process. More...
struct | MINIDUMP_MEMORY_INFO
| Describes a region of memory. More...
struct | MINIDUMP_MEMORY_INFO_LIST
| Contains a list of memory regions. More...

## Macros

#define | MINIDUMP_SIGNATURE ('PMDM')
| The magic number for a minidump file, stored in MINIDUMP_HEADER::Signature. More...
#define | MINIDUMP_VERSION (42899)
| The version of a minidump file, stored in MINIDUMP_HEADER::Version.
MINIDUMP_MISC*
Field validity flag values for MINIDUMP_MISC_INFO::Flags1.
#define | MINIDUMP_MISC1_PROCESS_ID 0x00000001
| MINIDUMP_MISC_INFO::ProcessId is valid.
#define | MINIDUMP_MISC1_PROCESS_TIMES 0x00000002
| The time-related fields in MINIDUMP_MISC_INFO are valid. More...
#define | MINIDUMP_MISC1_PROCESSOR_POWER_INFO 0x00000004
| The CPU-related fields in MINIDUMP_MISC_INFO_2 are valid. More...
#define | MINIDUMP_MISC3_PROCESS_INTEGRITY 0x00000010
| MINIDUMP_MISC_INFO_3::ProcessIntegrityLevel is valid.
#define | MINIDUMP_MISC3_PROCESS_EXECUTE_FLAGS 0x00000020
| MINIDUMP_MISC_INFO_3::ProcessExecuteFlags is valid.
#define | MINIDUMP_MISC3_TIMEZONE 0x00000040
| The time zone-related fields in MINIDUMP_MISC_INFO_3 are valid. More...
#define | MINIDUMP_MISC3_PROTECTED_PROCESS 0x00000080
| MINIDUMP_MISC_INFO_3::ProtectedProcess is valid.
#define | MINIDUMP_MISC4_BUILDSTRING 0x00000100
| The build string-related fields in MINIDUMP_MISC_INFO_4 are valid. More...
#define | MINIDUMP_MISC5_PROCESS_COOKIE 0x00000200
| MINIDUMP_MISC_INFO_5::ProcessCookie is valid.

## Typedefs

typedef uint32_t | RVA
| An offset within a minidump file, relative to the start of its MINIDUMP_HEADER. More...
typedef MINIDUMP_MISC_INFO_5 | MINIDUMP_MISC_INFO_N
| The latest known version of the MINIDUMP_MISC_INFO structure.

## Enumerations

enum | MINIDUMP_STREAM_TYPE
| Minidump stream type values for MINIDUMP_DIRECTORY::StreamType. Each stream structure has a corresponding stream type value to identify it. More...
enum | MINIDUMP_TYPE
| Minidump file type values for MINIDUMP_HEADER::Flags. These bits describe the types of data carried within a minidump file. More...

## Functions

struct | __attribute ((packed, aligned(4))) MINIDUMP_HANDLE_DATA_STREAM
| Represents the header for a handle data stream. More...

## Macro Definition Documentation

## MINIDUMP_MISC1_PROCESS_TIMES

#define MINIDUMP_MISC1_PROCESS_TIMES 0x00000002

The time-related fields in MINIDUMP_MISC_INFO are valid.

The following fields are valid:

- MINIDUMP_MISC_INFO::ProcessCreateTime
- MINIDUMP_MISC_INFO::ProcessUserTime
- MINIDUMP_MISC_INFO::ProcessKernelTime

## MINIDUMP_MISC1_PROCESSOR_POWER_INFO

#define MINIDUMP_MISC1_PROCESSOR_POWER_INFO 0x00000004

The CPU-related fields in MINIDUMP_MISC_INFO_2 are valid.

The following fields are valid:

- MINIDUMP_MISC_INFO_2::ProcessorMaxMhz
- MINIDUMP_MISC_INFO_2::ProcessorCurrentMhz
- MINIDUMP_MISC_INFO_2::ProcessorMhzLimit
- MINIDUMP_MISC_INFO_2::ProcessorMaxIdleState
- MINIDUMP_MISC_INFO_2::ProcessorCurrentIdleState

Note
  This macro should likely have been named MINIDUMP_MISC2_PROCESSOR_POWER_INFO.

## MINIDUMP_MISC3_TIMEZONE

#define MINIDUMP_MISC3_TIMEZONE 0x00000040

The time zone-related fields in MINIDUMP_MISC_INFO_3 are valid.

The following fields are valid:

- MINIDUMP_MISC_INFO_3::TimeZoneId
- MINIDUMP_MISC_INFO_3::TimeZone

## MINIDUMP_MISC4_BUILDSTRING

#define MINIDUMP_MISC4_BUILDSTRING 0x00000100

The build string-related fields in MINIDUMP_MISC_INFO_4 are valid.

The following fields are valid:

- MINIDUMP_MISC_INFO_4::BuildString
- MINIDUMP_MISC_INFO_4::DbgBldStr

## MINIDUMP_SIGNATURE

#define MINIDUMP_SIGNATURE ('PMDM')

The magic number for a minidump file, stored in MINIDUMP_HEADER::Signature.

A hex dump of a little-endian minidump file will begin with the string “MDMP”.

## Typedef Documentation

## RVA

typedef uint32_t RVA

An offset within a minidump file, relative to the start of its MINIDUMP_HEADER.

RVA stands for “relative virtual address”. Within a minidump file, RVAs are used as pointers to link structures together.

See also
  MINIDUMP_LOCATION_DESCRIPTOR

## Enumeration Type Documentation

## MINIDUMP_STREAM_TYPE

enum MINIDUMP_STREAM_TYPE

Minidump stream type values for MINIDUMP_DIRECTORY::StreamType. Each stream structure has a corresponding stream type value to identify it.

See also
  crashpad::MinidumpStreamType

Enumerator
ThreadListStream | The stream type for MINIDUMP_THREAD_LIST.
ModuleListStream | The stream type for MINIDUMP_MODULE_LIST.
MemoryListStream | The stream type for MINIDUMP_MEMORY_LIST.
ExceptionStream | The stream type for MINIDUMP_EXCEPTION_STREAM.
SystemInfoStream | The stream type for MINIDUMP_SYSTEM_INFO.
HandleDataStream | The stream contains information about active `HANDLE`s.
UnloadedModuleListStream | The stream type for MINIDUMP_UNLOADED_MODULE_LIST.

MiscInfoStream

The stream type for MINIDUMP_MISC_INFO, MINIDUMP_MISC_INFO_2, MINIDUMP_MISC_INFO_3, MINIDUMP_MISC_INFO_4, and MINIDUMP_MISC_INFO_5.

More recent versions of this stream are supersets of earlier versions.

The exact version of the stream that is present is implied by the stream’s size. Furthermore, this stream contains a field, MINIDUMP_MISC_INFO::Flags1, that indicates which data is present and valid.

MemoryInfoListStream | The stream type for MINIDUMP_MEMORY_INFO_LIST.
LastReservedStream | Values greater than this value will not be used by the system and can be used for custom user data streams.

## MINIDUMP_TYPE

enum MINIDUMP_TYPE

Minidump file type values for MINIDUMP_HEADER::Flags. These bits describe the types of data carried within a minidump file.

Enumerator

MiniDumpNormal

A minidump file without any additional data.

This type of minidump file contains:

- A MINIDUMP_SYSTEM_INFO stream.
- A MINIDUMP_MISC_INFO, MINIDUMP_MISC_INFO_2, MINIDUMP_MISC_INFO_3, or MINIDUMP_MISC_INFO_4 stream, depending on which fields are present.
- A MINIDUMP_THREAD_LIST stream. All threads are present, along with a snapshot of each thread’s stack memory sufficient to obtain backtraces.
- If the minidump file was generated as a result of an exception, a MINIDUMP_EXCEPTION_STREAM describing the exception.
- A MINIDUMP_MODULE_LIST stream. All loaded modules are present.
- Typically, a MINIDUMP_MEMORY_LIST stream containing duplicate pointers to the stack memory regions also referenced by the MINIDUMP_THREAD_LIST stream. This type of minidump file also includes a MINIDUMP_MEMORY_DESCRIPTOR containing the 256 bytes centered around the exception address or the instruction pointer.

## Function Documentation

## __attribute()

struct __attribute | ( | (packed, aligned(4)) |  | ) |

Represents the header for a handle data stream.

A list of MINIDUMP_HANDLE_DESCRIPTOR or MINIDUMP_HANDLE_DESCRIPTOR_2 structures will immediately follow in the stream.

The size of the header information for the stream, in bytes. This value is `sizeof(MINIDUMP_HANDLE_DATA_STREAM)`.
The size of a descriptor in the stream, in bytes. This value is `sizeof(MINIDUMP_HANDLE_DESCRIPTOR)` or `sizeof(MINIDUMP_HANDLE_DESCRIPTOR_2)`.
The number of descriptors in the stream.

Must be zero.