summaryrefslogtreecommitdiffstats
path: root/libbacktrace/Backtrace.cpp
diff options
context:
space:
mode:
authorChristopher Ferris <cferris@google.com>2015-05-01 15:02:03 -0700
committerChristopher Ferris <cferris@google.com>2015-05-01 17:09:49 -0700
commit2106f4ba95004fdfc76ad3fa308a07fdbf475984 (patch)
treeba5f3a525e4288db1f8af44c5b26284fb0d630d9 /libbacktrace/Backtrace.cpp
parentb74d889211f30d99c222fa7d3cfaf4a7390d6a95 (diff)
downloadsystem_core-2106f4ba95004fdfc76ad3fa308a07fdbf475984.tar.gz
system_core-2106f4ba95004fdfc76ad3fa308a07fdbf475984.tar.bz2
system_core-2106f4ba95004fdfc76ad3fa308a07fdbf475984.zip
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 (cherry picked from commit 329ed7dae49eba09bdf865dd999d1a7e73bb9687) Change-Id: Ibc37d8c8bb032820dca4e7531184349ba6d402d2
Diffstat (limited to 'libbacktrace/Backtrace.cpp')
-rw-r--r--libbacktrace/Backtrace.cpp7
1 files changed, 1 insertions, 6 deletions
diff --git a/libbacktrace/Backtrace.cpp b/libbacktrace/Backtrace.cpp
index b2d82976d..4e4003e60 100644
--- a/libbacktrace/Backtrace.cpp
+++ b/libbacktrace/Backtrace.cpp
@@ -99,12 +99,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()) {