|
Detect corrupt symbol files during minidump processing. Recover from the errors
and use the good data if possible.
More specifically:
- Detect corrupt symbols during minidump processing and provide the list of
modules with corrupt symbols in the ProcessState. This will allow listing the
corrupt symbol files in the final crash report.
- Skip and recover from symbol data parse errors - don't give up until 100
parse errors are seen.
- In order to recover from '\0' (null terminator) in the middle of a symbol
file, a couple of methods have to be updated to require both buffer pointer and
length. Previously they required only a buffer pointer (char *) and the size of
the buffer was evaluated using strlen which is not reliable when the data is
corrupt. Most of the changes are due to these signature updates.
- Added and updated unittests.
Also, updated minidump_stackwalk to show a WARNING for corrupt symbols. Output
looks like this:
...
Loaded modules:
0x000da000 - 0x000dafff Google Chrome Canary ??? (main)
0x000e0000 - 0x0417dfff Google Chrome Framework 0.1500.0.3 (WARNING: Corrupt
symbols, Google Chrome Framework, 4682A6B4136436C4BFECEB62D498020E0)
0x044a8000 - 0x04571fff IOBluetooth 0.1.0.0
...
Committed: https://code.google.com/p/google-breakpad/source/detail?r=1200
Total comments: 11
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats |
Patch |
|
M |
src/google_breakpad/processor/basic_source_line_resolver.h
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/google_breakpad/processor/fast_source_line_resolver.h
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/google_breakpad/processor/process_state.h
|
View
|
|
2 chunks |
+6 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/google_breakpad/processor/source_line_resolver_base.h
|
View
|
1
2
|
5 chunks |
+12 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/google_breakpad/processor/source_line_resolver_interface.h
|
View
|
1
2
|
2 chunks |
+8 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/google_breakpad/processor/stack_frame_symbolizer.h
|
View
|
|
1 chunk |
+4 lines, -1 line |
0 comments
|
Download
|
|
M |
src/google_breakpad/processor/stackwalker.h
|
View
|
|
1 chunk |
+6 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/google_breakpad/processor/symbol_supplier.h
|
View
|
1
2
3
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
src/processor/basic_source_line_resolver.cc
|
View
|
1
2
3
4
5
|
3 chunks |
+68 lines, -32 lines |
0 comments
|
Download
|
|
M |
src/processor/basic_source_line_resolver_types.h
|
View
|
1
2
|
3 chunks |
+18 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/processor/basic_source_line_resolver_unittest.cc
|
View
|
|
1 chunk |
+6 lines, -4 lines |
0 comments
|
Download
|
|
M |
src/processor/exploitability_unittest.cc
|
View
|
1
2
|
2 chunks |
+4 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/processor/fast_source_line_resolver.cc
|
View
|
1
2
|
2 chunks |
+9 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/processor/fast_source_line_resolver_types.h
|
View
|
1
2
|
3 chunks |
+8 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/processor/fast_source_line_resolver_unittest.cc
|
View
|
1
2
|
3 chunks |
+22 lines, -17 lines |
0 comments
|
Download
|
|
M |
src/processor/minidump_processor.cc
|
View
|
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
src/processor/minidump_processor_unittest.cc
|
View
|
1
2
|
4 chunks |
+13 lines, -10 lines |
0 comments
|
Download
|
|
M |
src/processor/minidump_stackwalk.cc
|
View
|
1
2
3
4
5
|
5 chunks |
+14 lines, -6 lines |
0 comments
|
Download
|
|
M |
src/processor/module_comparer.cc
|
View
|
|
2 chunks |
+7 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/processor/module_serializer.cc
|
View
|
|
3 chunks |
+13 lines, -6 lines |
0 comments
|
Download
|
|
M |
src/processor/process_state.cc
|
View
|
|
1 chunk |
+3 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/processor/simple_serializer-inl.h
|
View
|
|
1 chunk |
+5 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/processor/simple_symbol_supplier.cc
|
View
|
1
2
3
|
2 chunks |
+11 lines, -8 lines |
0 comments
|
Download
|
|
M |
src/processor/simple_symbol_supplier.h
|
View
|
1
2
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
src/processor/source_line_resolver_base.cc
|
View
|
1
2
|
10 chunks |
+41 lines, -11 lines |
0 comments
|
Download
|
|
M |
src/processor/source_line_resolver_base_types.h
|
View
|
1
2
|
1 chunk |
+9 lines, -1 line |
0 comments
|
Download
|
|
M |
src/processor/stack_frame_symbolizer.cc
|
View
|
1
2
|
2 chunks |
+10 lines, -5 lines |
0 comments
|
Download
|
|
M |
src/processor/stackwalker.cc
|
View
|
|
3 chunks |
+52 lines, -27 lines |
0 comments
|
Download
|
|
M |
src/processor/stackwalker_amd64_unittest.cc
|
View
|
1
2
|
9 chunks |
+33 lines, -10 lines |
0 comments
|
Download
|
|
M |
src/processor/stackwalker_arm_unittest.cc
|
View
|
1
2
|
13 chunks |
+49 lines, -14 lines |
0 comments
|
Download
|
|
M |
src/processor/stackwalker_unittest_utils.h
|
View
|
1
2
3
|
1 chunk |
+9 lines, -6 lines |
0 comments
|
Download
|
|
M |
src/processor/stackwalker_x86_unittest.cc
|
View
|
1
2
|
23 chunks |
+116 lines, -28 lines |
0 comments
|
Download
|
|
M |
src/tools/mac/crash_report/on_demand_symbol_supplier.h
|
View
|
1
2
3
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
src/tools/mac/crash_report/on_demand_symbol_supplier.mm
|
View
|
|
1 chunk |
+6 lines, -3 lines |
0 comments
|
Download
|
Total messages: 5
|