aboutsummaryrefslogtreecommitdiff
path: root/src/google_breakpad/common
diff options
context:
space:
mode:
authormdempsky@chromium.org <mdempsky@chromium.org>2014-12-11 01:17:43 +0000
committermdempsky@chromium.org <mdempsky@chromium.org>2014-12-11 01:17:43 +0000
commitd10c8c18ae5d92999f4154d27ed844c7803425a4 (patch)
tree9149cf99cddeac960d39757a742de5feec7909b3 /src/google_breakpad/common
parentBreakpad: Fix build with new clang versions. (diff)
downloadbreakpad-d10c8c18ae5d92999f4154d27ed844c7803425a4.tar.xz
Remove pointers from serialized file format
BUG=breakpad:621 R=thestig@chromium.org Review URL: https://breakpad.appspot.com/1764002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1410 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/google_breakpad/common')
-rw-r--r--src/google_breakpad/common/minidump_format.h38
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)