aboutsummaryrefslogtreecommitdiff
path: root/src/google_breakpad/common/minidump_size.h
diff options
context:
space:
mode:
authorTed Mielczarek <ted@mielczarek.org>2016-02-10 09:00:02 -0500
committerTed Mielczarek <ted@mielczarek.org>2016-02-10 09:00:02 -0500
commit4912669df1fb34fb8549925a8f7e70e5ffc9e890 (patch)
treeb93d28b1f168c8d6de08739fd160c4bddd997ca4 /src/google_breakpad/common/minidump_size.h
parentFix usage of deprecated method sendSynchronousRequest:returningResponse:error:. (diff)
downloadbreakpad-4912669df1fb34fb8549925a8f7e70e5ffc9e890.tar.xz
Change MDCVInfoELF into something usable.
This patch changes MDCVInfoELF (which is currently unused, apparently a vestigal bit of code landed as part of Solaris support) into a supported CodeView format that simply contains a build id as raw bytes. Modern ELF toolchains support build ids nicely: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Developer_Guide/compiling-build-id.html It would be useful to have the original build ids of loaded modules in Linux minidumps, since tools like Fedora's darkserver allow querying by build id and the current Breakpad code truncates the build id to the size of a GUID, which loses information: https://darkserver.fedoraproject.org/ A follow-up patch will change the Linux minidump generation code to produce MDCVInfoELF in minidumps instead of MDCVInfoPDB70. This patch should be landed first to ensure that crash processors are able to handle this format before dumps are generated containing it. The full build id is exposed as the return value of Minidump::code_identifier(), which currently just returns "id" for modules in Linux dumps. For backwards-compatibility, Minidump::debug_identifier() continues to treat the build id as a GUID, so debug identifiers for existing modules will not change. BUG= R=mark@chromium.org Review URL: https://codereview.chromium.org/1675413002 .
Diffstat (limited to 'src/google_breakpad/common/minidump_size.h')
-rw-r--r--src/google_breakpad/common/minidump_size.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/google_breakpad/common/minidump_size.h b/src/google_breakpad/common/minidump_size.h
index 918544b6..fae57923 100644
--- a/src/google_breakpad/common/minidump_size.h
+++ b/src/google_breakpad/common/minidump_size.h
@@ -76,6 +76,12 @@ class minidump_size<MDCVInfoPDB70> {
};
template<>
+class minidump_size<MDCVInfoELF> {
+ public:
+ static size_t size() { return MDCVInfoELF_minsize; }
+};
+
+template<>
class minidump_size<MDImageDebugMisc> {
public:
static size_t size() { return MDImageDebugMisc_minsize; }