diff --git a/debuggerd/tombstone.cpp b/debuggerd/tombstone.cpp index 56c03f744..b7e6b1704 100644 --- a/debuggerd/tombstone.cpp +++ b/debuggerd/tombstone.cpp @@ -371,7 +371,8 @@ static void dump_all_maps(Backtrace* backtrace, BacktraceMap* map, log_t* log, p } else { line += '-'; } - line += android::base::StringPrintf(" %8" PRIxPTR, it->end - it->start); + line += android::base::StringPrintf(" %8" PRIxPTR " %8" PRIxPTR, + it->offset, it->end - it->start); if (it->name.length() > 0) { line += " " + it->name; std::string build_id; diff --git a/include/backtrace/BacktraceMap.h b/include/backtrace/BacktraceMap.h index 731c24887..784bc035c 100644 --- a/include/backtrace/BacktraceMap.h +++ b/include/backtrace/BacktraceMap.h @@ -37,6 +37,7 @@ struct backtrace_map_t { uintptr_t start; uintptr_t end; + uintptr_t offset; uintptr_t load_base; int flags; std::string name; diff --git a/libbacktrace/UnwindMap.cpp b/libbacktrace/UnwindMap.cpp index 4a4e2f33c..879fea5eb 100644 --- a/libbacktrace/UnwindMap.cpp +++ b/libbacktrace/UnwindMap.cpp @@ -51,6 +51,7 @@ bool UnwindMap::GenerateMap() { map.start = unw_map.start; map.end = unw_map.end; + map.offset = unw_map.offset; map.load_base = unw_map.load_base; map.flags = unw_map.flags; map.name = unw_map.path; @@ -92,6 +93,7 @@ bool UnwindMapLocal::GenerateMap() { map.start = unw_map.start; map.end = unw_map.end; + map.offset = unw_map.offset; map.load_base = unw_map.load_base; map.flags = unw_map.flags; map.name = unw_map.path;