diff options
Diffstat (limited to 'src/google_breakpad')
-rw-r--r-- | src/google_breakpad/common/minidump_format.h | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/src/google_breakpad/common/minidump_format.h b/src/google_breakpad/common/minidump_format.h index 109c72e6..17a5abba 100644 --- a/src/google_breakpad/common/minidump_format.h +++ b/src/google_breakpad/common/minidump_format.h @@ -342,7 +342,7 @@ typedef enum { MD_LINUX_ENVIRON = 0x47670007, /* /proc/$x/environ */ MD_LINUX_AUXV = 0x47670008, /* /proc/$x/auxv */ MD_LINUX_MAPS = 0x47670009, /* /proc/$x/maps */ - MD_LINUX_DSO_DEBUG = 0x4767000A /* MDRawDebug */ + MD_LINUX_DSO_DEBUG = 0x4767000A /* MDRawDebug{32,64} */ } MDStreamType; /* MINIDUMP_STREAM_TYPE */ @@ -930,21 +930,39 @@ typedef enum { } MDAssertionInfoData; /* These structs are used to store the DSO debug data in Linux minidumps, - * which is necessary for converting minidumps to usable coredumps. */ + * which is necessary for converting minidumps to usable coredumps. + * Because of a historical accident, several fields are variably encoded + * according to client word size, so tools potentially need to support both. */ + +typedef struct { + uint32_t addr; + MDRVA name; + uint32_t ld; +} MDRawLinkMap32; + +typedef struct { + uint32_t version; + MDRVA map; /* array of MDRawLinkMap32 */ + uint32_t dso_count; + uint32_t brk; + uint32_t ldbase; + uint32_t dynamic; +} MDRawDebug32; + typedef struct { - void* addr; + uint64_t addr; MDRVA name; - void* ld; -} MDRawLinkMap; + uint64_t ld; +} MDRawLinkMap64; typedef struct { uint32_t version; - MDRVA map; + MDRVA map; /* array of MDRawLinkMap64 */ uint32_t dso_count; - void* brk; - void* ldbase; - void* dynamic; -} MDRawDebug; + uint64_t brk; + uint64_t ldbase; + uint64_t dynamic; +} MDRawDebug64; #if defined(_MSC_VER) #pragma warning(pop) |