diff options
| author | Christopher Ferris <cferris@google.com> | 2015-08-20 11:16:54 -0700 |
|---|---|---|
| committer | Christopher Ferris <cferris@google.com> | 2015-08-20 11:16:54 -0700 |
| commit | 9fbb56519b81429f61baaf3049d2152ca06552a7 (patch) | |
| tree | 35f9f54b4a483d4ea8a6e3fe702d326a0586e897 /libbacktrace/backtrace_test.cpp | |
| parent | b5f132c0849706ecae0080a1898ea751ca6bb6df (diff) | |
Display the map offset for each frame.
The dlopen of a shared library in an apk results in large map offsets.
Unfortunately, the current way that the frame data is printed, it's
impossible to tell what the relative pc is relative to. With the
addition of the offset, it's possible to figure out what the relative
pc actually references.
Bug: 23348999
Change-Id: Ia51b669ea3f810158cfd0d71d9ae89bf9a3170d3
Diffstat (limited to 'libbacktrace/backtrace_test.cpp')
| -rw-r--r-- | libbacktrace/backtrace_test.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libbacktrace/backtrace_test.cpp b/libbacktrace/backtrace_test.cpp index 760f5cc17c..c65075571b 100644 --- a/libbacktrace/backtrace_test.cpp +++ b/libbacktrace/backtrace_test.cpp @@ -825,6 +825,15 @@ TEST(libbacktrace, format_test) { EXPECT_EQ("#01 pc 123456dc MapFake (ProcFake+645)", #endif backtrace->FormatFrameData(&frame)); + + // Check a non-zero map offset. + frame.map.offset = 0x1000; +#if defined(__LP64__) + EXPECT_EQ("#01 pc 00000000123456dc MapFake (offset 0x1000) (ProcFake+645)", +#else + EXPECT_EQ("#01 pc 123456dc MapFake (offset 0x1000) (ProcFake+645)", +#endif + backtrace->FormatFrameData(&frame)); } struct map_test_t { |
