Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(564)

Issue 1675413002: Change MDCVInfoELF into something usable. (Closed)

Created:
4 years, 10 months ago by Ted Mielczarek
Modified:
4 years, 10 months ago
CC:
google-breakpad-dev_googlegroups.com
Base URL:
https://chromium.googlesource.com/breakpad/breakpad.git@master
Target Ref:
refs/heads/master
Visibility:
Public.

Description

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 Committed: https://chromium.googlesource.com/breakpad/breakpad/+/7a364b1262df4fe6f861033547f177f8dd17fa30

Patch Set 1 #

Total comments: 3
Unified diffs Side-by-side diffs Delta from patch set Stats (+309 lines, -45 lines) Patch
M src/google_breakpad/common/minidump_format.h View 1 chunk +13 lines, -6 lines 2 comments Download
M src/google_breakpad/common/minidump_size.h View 1 chunk +6 lines, -0 lines 0 comments Download
M src/processor/minidump.cc View 7 chunks +88 lines, -18 lines 1 comment Download
M src/processor/minidump_unittest.cc View 5 chunks +202 lines, -21 lines 0 comments Download

Messages

Total messages: 19 (5 generated)
Ted Mielczarek
Here's an example dump produced from the unit tests containing MDCVInfoELF: https://people.mozilla.org/~tmielczarek/linux-cvinfoelf.dmp (I have the ...
4 years, 10 months ago (2016-02-08 20:14:55 UTC) #3
Mark Mentovai
You mean we weren’t doing this all along? I thought we were. Oh boy. https://codereview.chromium.org/1675413002/diff/1/src/google_breakpad/common/minidump_format.h ...
4 years, 10 months ago (2016-02-09 15:55:04 UTC) #4
Ted Mielczarek
I knew we were using the MDCVInfoPDB70 struct for Linux (because I had run into ...
4 years, 10 months ago (2016-02-09 18:01:52 UTC) #5
Ted Mielczarek
Also, in fairness to us, the Build ID work didn't ship in Fedora until late ...
4 years, 10 months ago (2016-02-09 18:03:33 UTC) #6
Mark Mentovai
Yeah, could you say something else about the expected length? Or mention GNU_BUILD_ID by name, ...
4 years, 10 months ago (2016-02-09 18:52:54 UTC) #7
Ted Mielczarek
On 2016/02/09 18:52:54, Mark Mentovai wrote: > Yeah, could you say something else about the ...
4 years, 10 months ago (2016-02-09 19:21:00 UTC) #8
Mark Mentovai
OK, fair enough. LGTM https://codereview.chromium.org/1675413002/diff/1/src/processor/minidump.cc File src/processor/minidump.cc (right): https://codereview.chromium.org/1675413002/diff/1/src/processor/minidump.cc#newcode1867 src/processor/minidump.cc:1867: char byte[3]; build_id[build_id_index] is the ...
4 years, 10 months ago (2016-02-09 19:27:05 UTC) #9
Ted Mielczarek
Committed patchset #1 (id:1) manually as 7a364b1262df4fe6f861033547f177f8dd17fa30 (presubmit successful).
4 years, 10 months ago (2016-02-10 14:00:05 UTC) #11
ivanpe
Hi Ted, this change is breaking minidump_unittest when compiled for 64-bit platforms. Here is how ...
4 years, 10 months ago (2016-02-17 02:28:00 UTC) #13
vapier
yeah, we tried updating in CrOS, but this broke on all our bots :(
4 years, 10 months ago (2016-02-17 04:17:10 UTC) #15
Ted Mielczarek
On 2016/02/17 02:28:00, ivanpe wrote: > Hi Ted, this change is breaking minidump_unittest when compiled ...
4 years, 10 months ago (2016-02-17 10:58:14 UTC) #16
Ted Mielczarek
Oh, apparently I had configured my objdir to build without optimization at some point. Rebuilding ...
4 years, 10 months ago (2016-02-17 11:05:48 UTC) #17
Ted Mielczarek
I landed a simple fix for this: https://chromium.googlesource.com/breakpad/breakpad/+/c05ee946049cbf964b668dc065ad3f2d4db5ac3d Sorry for not catching it before landing. ...
4 years, 10 months ago (2016-02-17 11:46:25 UTC) #18
vapier
4 years, 10 months ago (2016-02-17 20:30:17 UTC) #19
Message was sent while issue was closed.
seems to work for me in CrOS, so i've sent it to the bots.  thanks!

Powered by Google App Engine
This is Rietveld 408576698