Microdumps: support aarch64 and lib mapping from APK

- Filter modules by prot flags (only +x) not extensions. It wouldn't
  otherwise catch the case of Chrome mapping the library from the
  apk (which is mapped r-x but doesn't end in .so).
- Use compile-time detection of target arch, in order to cope with
  multilib OSes, where uname() doesn't reflect the run-time arch.
- Add OS information and CPU arch / count.
- Add support for aarch64.
- Add tests and stackwalk expectations for aarch64.
- Fix a potential overflow bug in the processor.
- Rebaseline the tests using smaller symbols.
- Fix microdump_writer_unittest.cc on 32-bit host.

BUG=chromium:410294

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1407 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
primiano@chromium.org 2014-12-02 15:31:25 +00:00
parent 63919583ba
commit 0b6cc95246
21 changed files with 148960 additions and 777 deletions

View file

@ -0,0 +1,42 @@
Operating system: Android
OS VERSION INFO
CPU: armv7l
2 CPUs
Crash reason:
Crash address: 0x0
Process uptime: not available
Thread 0 (crashed)
0 breakpad_unittests!MicrodumpWriterTest_Setup_Test::TestBody [gtest.h : 1481 + 0x1]
Found by: given as instruction pointer in context
1 breakpad_unittests!testing::Test::Run [gtest.cc : 2435 + 0x17]
Found by: call frame info
2 breakpad_unittests!testing::TestInfo::Run [gtest.cc : 2610 + 0x5]
Found by: call frame info
3 breakpad_unittests!testing::TestCase::Run [gtest.cc : 2728 + 0x3]
Found by: call frame info
4 breakpad_unittests!testing::internal::UnitTestImpl::RunAllTests [gtest.cc : 4591 + 0x3]
Found by: call frame info
5 breakpad_unittests!testing::UnitTest::Run [gtest.cc : 2418 + 0x5]
Found by: call frame info
6 breakpad_unittests!main [gtest.h : 2326 + 0x3]
Found by: call frame info
7 libc.so + 0x11e9d
Found by: call frame info
Loaded modules:
0xaaacd000 - 0xaab48fff breakpad_unittests ???
0xf6fca000 - 0xf6fcdfff libnetd_client.so ???
0xf6fee000 - 0xf6ff1fff libstdc++.so ???
0xf6ff2000 - 0xf700afff libm.so ???
0xf700c000 - 0xf7012fff liblog.so ???
0xf7014000 - 0xf706dfff libc.so ??? (WARNING: No symbols, libc.so, 167F187B09A27F7444EF989603AAFD3D0)