summaryrefslogtreecommitdiff
path: root/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc
diff options
context:
space:
mode:
authorFrancis Ricci <francisjricci@gmail.com>2017-10-02 20:22:16 +0000
committerFrancis Ricci <francisjricci@gmail.com>2017-10-02 20:22:16 +0000
commit3ce56013ccfd444b11b2d5b4769c006fc9517682 (patch)
tree4eca0369d283370908be12b6c92a01b955ee7919 /lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc
parent6b550d45f492bb21069c2ccdc8561379176def56 (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.cc5
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;
}