diff options
author | Yabin Cui <yabinc@google.com> | 2015-10-12 16:56:05 -0700 |
---|---|---|
committer | Yabin Cui <yabinc@google.com> | 2015-10-22 17:25:31 -0700 |
commit | 547c60e4dd29c5788d5948ad348acf33a55d6ed6 (patch) | |
tree | 9c25287fdbbb9a3589abb6f77976609c8b32bdb8 /simpleperf/dso.h | |
parent | e7182b0cc45b447943b51e36aa1feb2d17257875 (diff) | |
download | extras-547c60e4dd29c5788d5948ad348acf33a55d6ed6.tar.gz |
Simpleperf: fix some unknown symbols for report result.
Using debug shared libraries in /usr/lib/debug on linux host.
Match ip addresses with symbols by symbols' virtual addresses instead of
file offsets in elf file. Because symbols' file offsets in debug shared
libraries are different from those in original shared libraries.
Fix overlapped maps.
Bug: 24716851
Change-Id: I9cb64958c4de5c7a6c77c3febc5f689cf2df650f
Diffstat (limited to 'simpleperf/dso.h')
-rw-r--r-- | simpleperf/dso.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/simpleperf/dso.h b/simpleperf/dso.h index bbe01908..a140e5e9 100644 --- a/simpleperf/dso.h +++ b/simpleperf/dso.h @@ -70,7 +70,10 @@ struct Dso { // return the path with prefix set by SetSymFsDir(). std::string GetAccessiblePath() const; - const Symbol* FindSymbol(uint64_t offset_in_dso); + // Return the minimum virtual address in program header. + uint64_t MinVirtualAddress(); + + const Symbol* FindSymbol(uint64_t vaddr_in_dso); private: static BuildId GetExpectedBuildId(const std::string& filename); @@ -95,6 +98,7 @@ struct Dso { const DsoType type_; const std::string path_; + uint64_t min_vaddr_; std::vector<Symbol> symbols_; bool is_loaded_; }; |