Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(337)

Issue 534002: Keeping track of modules without symbols during crash report processing (Closed)

Can't Edit
Can't Publish+Mail
Start Review
Created:
11 years, 8 months ago by Ivan Penkov
Modified:
11 years, 8 months ago
CC:
google-breakpad-dev_googlegroups.com
Base URL:
http://google-breakpad.googlecode.com/svn/trunk/src/
Visibility:
Public.

Description

The purpose of this change is to enable easy and fast troubleshooting of issues
related to missing symbols.

Although this change may look big, most of the stuff is related to unittests, so
it is pretty straightforward.

Essentially, this introduces a new member in the ProcessState object that is
getting populated with the modules that don't have symbols while the minidump is
being processed (during stack walk).  Note that this list will only contain
modules for which the symbols were actually needed (module address is on the
stack).

This will allow the tools built on top of the Breakpad processor (e.g.
Breakpad's minidump_stackwalk, Google's crash processor) to show the missing
symbols in the resulting crash reports.

Here is an example output from minidump_stackwalk:

==========================
...
Loaded modules:
0x7fa2915ef000 - 0x7fa2917f2fff libnss_cache-2.15.so
0x7fa2917f3000 - 0x7fa2919fffff libnss_files-2.15.so
0x7fa291fb8000 - 0x7fa29236cfff libc-2.15.so
...

Modules without symbols:       <<=============  new section
0x7fa291fb8000 - 0x7fa29236cfff libc-2.15.so
0x7fa292876000 - 0x7fa292a8efff libpthread-2.15.so
...
==========================


Thanks,
-Ivan

Patch Set 1 #

Total comments: 4

Patch Set 2 : Refactoring the minidump_stackwalk.cc a bit as suggested and updating the loaded module list output. #

Total comments: 6

Patch Set 3 : Resolving a merge conflict with a previous change that updated the SymbolizerResult enum. Also fix… #

Patch Set 4 : Forgot to update the module list in the unittest. #

Total comments: 4

Patch Set 5 : Fixing a typo. #

Patch Set 6 : renaming the function to ContainsModule and I'm removing the check for the #

Total comments: 4

Patch Set 7 : Reorder asserts, resolve merge conflicts, and rearange spaces in the printf format string as sugges… #

Unified diffs Side-by-side diffs Delta from patch set Stats Patch
M google_breakpad/processor/process_state.h View 1 2 3 4 5 6 2 chunks +6 lines, -0 lines 0 comments Download
M google_breakpad/processor/stackwalker.h View 1 2 3 4 5 6 3 chunks +11 lines, -1 line 0 comments Download
M processor/minidump_processor.cc View 1 2 3 4 5 6 1 chunk +4 lines, -3 lines 0 comments Download
M processor/minidump_stackwalk.cc View 1 2 3 4 5 6 3 chunks +48 lines, -9 lines 0 comments Download
M processor/process_state.cc View 1 2 3 4 5 6 1 chunk +3 lines, -0 lines 0 comments Download
M processor/stackwalker.cc View 1 2 3 4 5 6 2 chunks +27 lines, -1 line 0 comments Download
M processor/stackwalker_amd64_unittest.cc View 1 2 3 4 5 6 9 chunks +28 lines, -7 lines 0 comments Download
M processor/stackwalker_arm_unittest.cc View 1 2 3 4 5 6 13 chunks +42 lines, -11 lines 0 comments Download
M processor/stackwalker_selftest.cc View 1 2 3 4 5 6 2 chunks +4 lines, -1 line 0 comments Download
M processor/stackwalker_x86_unittest.cc View 1 2 3 4 5 6 18 chunks +57 lines, -16 lines 0 comments Download

Messages

Total messages: 12
Ivan Penkov
Please, review! Thanks, -Ivan
11 years, 8 months ago #1
Mark Mentovai
http://breakpad.appspot.com/534002/diff/1/processor/minidump_stackwalk.cc File processor/minidump_stackwalk.cc (right): http://breakpad.appspot.com/534002/diff/1/processor/minidump_stackwalk.cc#newcode472 processor/minidump_stackwalk.cc:472: PrintModulesWithoutSymbols(process_state.modules_without_symbols()); Would this whole thing be easier if we ...
11 years, 8 months ago #2
Ivan Penkov
Mark's suggestions are addressed. Please, take another look. Thanks, -Ivan http://breakpad.appspot.com/534002/diff/1/processor/minidump_stackwalk.cc File processor/minidump_stackwalk.cc (right): http://breakpad.appspot.com/534002/diff/1/processor/minidump_stackwalk.cc#newcode472 ...
11 years, 8 months ago #3
Mark Mentovai
http://breakpad.appspot.com/534002/diff/5001/processor/minidump_stackwalk.cc File processor/minidump_stackwalk.cc (right): http://breakpad.appspot.com/534002/diff/5001/processor/minidump_stackwalk.cc#newcode345 processor/minidump_stackwalk.cc:345: return false; I’d personally think that this is “true” ...
11 years, 8 months ago #4
Ivan Penkov
Reverted the changes to the table output. http://breakpad.appspot.com/534002/diff/5001/processor/minidump_stackwalk.cc File processor/minidump_stackwalk.cc (right): http://breakpad.appspot.com/534002/diff/5001/processor/minidump_stackwalk.cc#newcode345 processor/minidump_stackwalk.cc:345: return false; ...
11 years, 8 months ago #5
Jess
I don't have much to add beyond the current discussion. Just a few comment misspellings. ...
11 years, 8 months ago #6
Ivan Penkov
Typos fixed. http://breakpad.appspot.com/534002/diff/11001/processor/minidump_stackwalk.cc File processor/minidump_stackwalk.cc (right): http://breakpad.appspot.com/534002/diff/11001/processor/minidump_stackwalk.cc#newcode364 processor/minidump_stackwalk.cc:364: // confrimed to be missing their symbols ...
11 years, 8 months ago #7
Mark Mentovai
http://breakpad.appspot.com/534002/diff/5001/processor/minidump_stackwalk.cc File processor/minidump_stackwalk.cc (right): http://breakpad.appspot.com/534002/diff/5001/processor/minidump_stackwalk.cc#newcode345 processor/minidump_stackwalk.cc:345: return false; You only mark a module as having ...
11 years, 8 months ago #8
Ivan Penkov
I'm renaming the function to ContainsModule and I'm removing the check for the empty debug ...
11 years, 8 months ago #9
Mark Mentovai
LGTM with these changes. http://breakpad.appspot.com/534002/diff/18001/processor/minidump_stackwalk.cc File processor/minidump_stackwalk.cc (right): http://breakpad.appspot.com/534002/diff/18001/processor/minidump_stackwalk.cc#newcode341 processor/minidump_stackwalk.cc:341: assert(module); Nit: I’d put these ...
11 years, 8 months ago #10
Ivan Penkov
Done. http://breakpad.appspot.com/534002/diff/18001/processor/minidump_stackwalk.cc File processor/minidump_stackwalk.cc (right): http://breakpad.appspot.com/534002/diff/18001/processor/minidump_stackwalk.cc#newcode341 processor/minidump_stackwalk.cc:341: assert(module); On 2013/03/05 20:19:58, Mark Mentovai wrote: > ...
11 years, 8 months ago #11
Mark Mentovai
11 years, 8 months ago #12
LGTM
Sign in to reply to this message.

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld 1004:630ec63f810e-tainted