Crashpad
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Loading...
Searching...
No Matches
crashpad::MinidumpCrashpadInfo Struct Reference

Additional Crashpad-specific information carried within a minidump file. More...

#include "minidump/minidump_extensions.h"

Collaboration diagram for crashpad::MinidumpCrashpadInfo:
[legend]

Public Attributes

uint32_t version
 The structure’s version number.
 
UUID report_id
 A UUID identifying an individual crash report.
 
UUID client_id
 A UUID identifying the client that crashed.
 
MINIDUMP_LOCATION_DESCRIPTOR simple_annotations
 A MinidumpSimpleStringDictionary pointing to strings interpreted as key-value pairs.
 
MINIDUMP_LOCATION_DESCRIPTOR module_list
 A pointer to a MinidumpModuleCrashpadInfoList structure.
 
uint32_t reserved
 This field is always 0.
 
uint64_t address_mask
 A mask indicating the range of valid addresses for a pointer.
 

Static Public Attributes

static constexpr uint32_t kVersion = 1
 The structure’s currently-defined version number.
 

Detailed Description

Additional Crashpad-specific information carried within a minidump file.

This structure is versioned. When changing this structure, leave the existing structure intact so that earlier parsers will be able to understand the fields they are aware of, and make additions at the end of the structure. Revise kVersion and document each field’s validity based on version, so that newer parsers will be able to determine whether the added fields are valid or not.

Member Data Documentation

◆ address_mask

uint64_t crashpad::MinidumpCrashpadInfo::address_mask

A mask indicating the range of valid addresses for a pointer.

ARM64 supports MTE, TBI and PAC masking, generally in the upper bits of a pointer. This mask can be used by LLDB to mimic ptrauth_strip and strip the pointer authentication codes. To recover pointer in userland on Darwin, pointer & (~mask). In the case of code running in high memory, where bit 55 is set (indicating that all of the high bits should be set to 1), pointer | mask. See ABIMacOSX_arm64::FixAddress for more details here: https://github.com/llvm/llvm-project/blob/001d18664f8bcf63af64f10688809f7681dfbf0b/lldb/source/Plugins/ABI/AArch64/ABIMacOSX_arm64.cpp#L817-L830

If the platform does not support pointer authentication, or the range of valid addressees for a pointer was inaccessible, this field will be 0 and should be ignored.

This field is present when version is at least 1, if the size of the structure is large enough to accommodate it.

◆ client_id

UUID crashpad::MinidumpCrashpadInfo::client_id

A UUID identifying the client that crashed.

Client identification is within the scope of the application, but it is expected that the identifier will be unique for an instance of Crashpad monitoring an application or set of applications for a user. The identifier shall remain stable over time.

If no identifier is available, this field will contain zeroes.

This field is present when version is at least 1.

◆ kVersion

uint32_t crashpad::MinidumpCrashpadInfo::kVersion = 1
staticconstexpr

The structure’s currently-defined version number.

See also
version

◆ module_list

MINIDUMP_LOCATION_DESCRIPTOR crashpad::MinidumpCrashpadInfo::module_list

A pointer to a MinidumpModuleCrashpadInfoList structure.

This field is present when version is at least 1.

◆ report_id

UUID crashpad::MinidumpCrashpadInfo::report_id

A UUID identifying an individual crash report.

This provides a stable identifier for a crash even as the report is converted to different formats, provided that all formats support storing a crash report ID.

If no identifier is available, this field will contain zeroes.

This field is present when version is at least 1.

◆ simple_annotations

MINIDUMP_LOCATION_DESCRIPTOR crashpad::MinidumpCrashpadInfo::simple_annotations

A MinidumpSimpleStringDictionary pointing to strings interpreted as key-value pairs.

These key-value pairs correspond to ProcessSnapshot::AnnotationsSimpleMap().

This field is present when version is at least 1.

◆ version

uint32_t crashpad::MinidumpCrashpadInfo::version

The structure’s version number.

Readers can use this field to determine which other fields in the structure are valid. Upon encountering a value greater than kVersion, a reader should assume that the structure’s layout is compatible with the structure defined as having value kVersion.

Writers may produce values less than kVersion in this field if there is no need for any fields present in later versions.


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