diff options
author | Kuba Brecka <kuba.brecka@gmail.com> | 2015-03-02 22:56:25 +0000 |
---|---|---|
committer | Kuba Brecka <kuba.brecka@gmail.com> | 2015-03-02 22:56:25 +0000 |
commit | cf45ec10e7fac715e4208e2a187162e12ef32cc8 (patch) | |
tree | 7045a287a730271a0a1f71ba37e1e44742fd7420 /lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc | |
parent | 2bb6247ced71298200b35723fa7957e6123ec8ce (diff) |
Symbolizer refactoring: Make LibbacktraceSymbolizer adopt the SymbolizerTool interface
Reviewed at http://reviews.llvm.org/D7971
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@231032 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc')
-rw-r--r-- | lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc b/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc index feff9654f..5bffbf12a 100644 --- a/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc +++ b/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc @@ -359,18 +359,17 @@ class POSIXSymbolizer : public Symbolizer { BlockingMutexLock l(&mu_); const char *module_name; uptr module_offset; + SymbolizedStack *res = SymbolizedStack::New(addr); if (!FindModuleNameAndOffsetForAddress(addr, &module_name, &module_offset)) - return SymbolizedStack::New(addr); + return res; + // Always fill data about module name and offset. + res->info.FillAddressAndModuleInfo(addr, module_name, module_offset); // First, try to use libbacktrace symbolizer (if it's available). if (libbacktrace_symbolizer_ != 0) { mu_.CheckLocked(); - if (SymbolizedStack *res = libbacktrace_symbolizer_->SymbolizeCode( - addr, module_name, module_offset)) + if (libbacktrace_symbolizer_->SymbolizePC(addr, res)) return res; } - // Always fill data about module name and offset. - SymbolizedStack *res = SymbolizedStack::New(addr); - res->info.FillAddressAndModuleInfo(addr, module_name, module_offset); if (SymbolizerTool *tool = GetSymbolizerTool()) { SymbolizerScope sym_scope(this); tool->SymbolizePC(addr, res); |