diff options
author | Francis Ricci <francisjricci@gmail.com> | 2017-10-02 20:22:16 +0000 |
---|---|---|
committer | Francis Ricci <francisjricci@gmail.com> | 2017-10-02 20:22:16 +0000 |
commit | 3ce56013ccfd444b11b2d5b4769c006fc9517682 (patch) | |
tree | 4eca0369d283370908be12b6c92a01b955ee7919 /lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc | |
parent | 6b550d45f492bb21069c2ccdc8561379176def56 (diff) |
Add support for custom loaders to the sanitizer symbolizer
Summary:
Adds a fallback mode to procmaps when the symbolizer
fails to locate a module for a given address by using
dl_iterate_phdr.
Reviewers: kubamracek, rnk, vitalybuka, eugenis
Reviewed By: eugenis
Subscribers: srhines, llvm-commits
Differential Revision: https://reviews.llvm.org/D37269
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@314713 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc')
-rw-r--r-- | lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc b/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc index 37ac12c34..a4bab668b 100644 --- a/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc +++ b/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc @@ -165,6 +165,7 @@ bool Symbolizer::FindModuleNameAndOffsetForAddress(uptr address, void Symbolizer::RefreshModules() { modules_.init(); + fallback_modules_.fallbackInit(); RAW_CHECK(modules_.size() > 0); modules_fresh_ = true; } @@ -198,6 +199,10 @@ const LoadedModule *Symbolizer::FindModuleForAddress(uptr address) { if (module) return module; } #endif + + if (fallback_modules_.size()) { + module = SearchForModule(fallback_modules_, address); + } return module; } |