diff options
Diffstat (limited to 'libsanitizer/tsan/tsan_symbolize.cc')
-rw-r--r-- | libsanitizer/tsan/tsan_symbolize.cc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/libsanitizer/tsan/tsan_symbolize.cc b/libsanitizer/tsan/tsan_symbolize.cc index 439b8824c6a..50a4eaa518b 100644 --- a/libsanitizer/tsan/tsan_symbolize.cc +++ b/libsanitizer/tsan/tsan_symbolize.cc @@ -50,7 +50,7 @@ static ReportStack *NewReportStackEntry(const AddressInfo &info) { } ReportStack *SymbolizeCode(uptr addr) { - if (0 != internal_strcmp(flags()->external_symbolizer_path, "")) { + if (flags()->external_symbolizer_path[0]) { static const uptr kMaxAddrFrames = 16; InternalScopedBuffer<AddressInfo> addr_frames(kMaxAddrFrames); for (uptr i = 0; i < kMaxAddrFrames; i++) @@ -77,6 +77,12 @@ ReportStack *SymbolizeCode(uptr addr) { } ReportStack *SymbolizeData(uptr addr) { + if (flags()->external_symbolizer_path[0]) { + AddressInfo frame; + if (!__sanitizer::SymbolizeData(addr, &frame)) + return 0; + return NewReportStackEntry(frame); + } return SymbolizeDataAddr2Line(addr); } |