diff options
author | Alexey Samsonov <samsonov@google.com> | 2013-11-01 00:19:46 +0000 |
---|---|---|
committer | Alexey Samsonov <samsonov@google.com> | 2013-11-01 00:19:46 +0000 |
commit | a96c4dc70efa6e45b27640cdd9812e0817c9a75d (patch) | |
tree | 8329d4e18873b303855847ce5227029358a1d23d /lib/sanitizer_common | |
parent | 66d91e3356a0c4d7aff3beaaaff3e87bbaec805c (diff) | |
download | compiler-rt-a96c4dc70efa6e45b27640cdd9812e0817c9a75d.tar.gz compiler-rt-a96c4dc70efa6e45b27640cdd9812e0817c9a75d.tar.bz2 compiler-rt-a96c4dc70efa6e45b27640cdd9812e0817c9a75d.tar.xz |
Consistently use StackTrace::PrintStack in ASan, LSan and MSan
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@193834 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/sanitizer_common')
-rw-r--r-- | lib/sanitizer_common/sanitizer_stacktrace.cc | 6 | ||||
-rw-r--r-- | lib/sanitizer_common/sanitizer_stacktrace.h | 1 |
2 files changed, 7 insertions, 0 deletions
diff --git a/lib/sanitizer_common/sanitizer_stacktrace.cc b/lib/sanitizer_common/sanitizer_stacktrace.cc index 70209f25..d01e26b0 100644 --- a/lib/sanitizer_common/sanitizer_stacktrace.cc +++ b/lib/sanitizer_common/sanitizer_stacktrace.cc @@ -40,6 +40,10 @@ static void PrintStackFramePrefix(uptr frame_num, uptr pc) { void StackTrace::PrintStack(const uptr *addr, uptr size, SymbolizeCallback symbolize_callback) { + if (addr == 0) { + Printf("<empty stack>\n\n"); + return; + } MemoryMappingLayout proc_maps(/*cache_enabled*/true); InternalScopedBuffer<char> buff(GetPageSizeCached() * 2); InternalScopedBuffer<AddressInfo> addr_frames(64); @@ -100,6 +104,8 @@ void StackTrace::PrintStack(const uptr *addr, uptr size, frame_num++; } } + // Always print a trailing empty line after stack trace. + Printf("\n"); } uptr StackTrace::GetCurrentPc() { diff --git a/lib/sanitizer_common/sanitizer_stacktrace.h b/lib/sanitizer_common/sanitizer_stacktrace.h index e66e2a9b..8c55397f 100644 --- a/lib/sanitizer_common/sanitizer_stacktrace.h +++ b/lib/sanitizer_common/sanitizer_stacktrace.h @@ -34,6 +34,7 @@ struct StackTrace { uptr size; uptr trace[kStackTraceMax]; + // Prints a symbolized stacktrace, followed by an empty line. static void PrintStack(const uptr *addr, uptr size, SymbolizeCallback symbolize_callback = 0); |