diff options
author | Christopher Ferris <cferris@google.com> | 2015-05-01 15:02:03 -0700 |
---|---|---|
committer | Christopher Ferris <cferris@google.com> | 2015-05-01 16:04:24 -0700 |
commit | 329ed7dae49eba09bdf865dd999d1a7e73bb9687 (patch) | |
tree | ac1e24fea451c6ac8f5e5101e32f3f69f76d0d55 /libbacktrace/Backtrace.cpp | |
parent | f1a58f8f33509201cabe71c6a9d01aa6b8f99966 (diff) | |
download | system_core-329ed7dae49eba09bdf865dd999d1a7e73bb9687.zip system_core-329ed7dae49eba09bdf865dd999d1a7e73bb9687.tar.gz system_core-329ed7dae49eba09bdf865dd999d1a7e73bb9687.tar.bz2 |
Add load base to map for relocation packing.
The new linker relocation packing support uses non-zero load bases,
so we better handle them properly.
Also print out the load base for a map if it's non-zero.
Bug: 20687795
Change-Id: Iec2d1db2051e7b4a278c1dfa57d745128a7f2974
Diffstat (limited to 'libbacktrace/Backtrace.cpp')
-rw-r--r-- | libbacktrace/Backtrace.cpp | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/libbacktrace/Backtrace.cpp b/libbacktrace/Backtrace.cpp index 91ca8b7..d75c210 100644 --- a/libbacktrace/Backtrace.cpp +++ b/libbacktrace/Backtrace.cpp @@ -97,12 +97,7 @@ std::string Backtrace::FormatFrameData(const backtrace_frame_data_t* frame) { map_name = "<unknown>"; } - uintptr_t relative_pc; - if (BacktraceMap::IsValid(frame->map)) { - relative_pc = frame->pc - frame->map.start; - } else { - relative_pc = frame->pc; - } + uintptr_t relative_pc = BacktraceMap::GetRelativePc(frame->map, frame->pc); std::string line(StringPrintf("#%02zu pc %" PRIPTR " %s", frame->num, relative_pc, map_name)); if (!frame->func_name.empty()) { |