[compiler-rt] r183414 - [sanitizer] Do not fall back to SlowUnwindStack() in GetStackTrace()

Sergey Matveev earthdok at google.com
Thu Jun 6 07:19:37 PDT 2013


Author: smatveev
Date: Thu Jun  6 09:19:36 2013
New Revision: 183414

URL: http://llvm.org/viewvc/llvm-project?rev=183414&view=rev
Log:
[sanitizer] Do not fall back to SlowUnwindStack() in GetStackTrace()

Modified:
    compiler-rt/trunk/lib/lsan/lsan_common_linux.cc
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix_libcdep.cc

Modified: compiler-rt/trunk/lib/lsan/lsan_common_linux.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_common_linux.cc?rev=183414&r1=183413&r2=183414&view=diff
==============================================================================
--- compiler-rt/trunk/lib/lsan/lsan_common_linux.cc (original)
+++ compiler-rt/trunk/lib/lsan/lsan_common_linux.cc Thu Jun  6 09:19:36 2013
@@ -96,8 +96,9 @@ static uptr GetCallerPC(u32 stack_id) {
   uptr size = 0;
   const uptr *trace = StackDepotGet(stack_id, &size);
   // The top frame is our malloc/calloc/etc. The next frame is the caller.
-  CHECK_GE(size, 2);
-  return trace[1];
+  if (size >= 2)
+    return trace[1];
+  return 0;
 }
 
 void ProcessPlatformSpecificAllocationsCb::operator()(void *p) const {

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix_libcdep.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix_libcdep.cc?rev=183414&r1=183413&r2=183414&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix_libcdep.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix_libcdep.cc Thu Jun  6 09:19:36 2013
@@ -99,7 +99,7 @@ void GetStackTrace(StackTrace *stack, up
   // Always unwind fast on Mac.
   (void)fast;
 #else
-  if (!fast || (stack_top == stack_bottom))
+  if (!fast)
     return stack->SlowUnwindStack(pc, max_s);
 #endif  // SANITIZER_MAC
   stack->size = 0;





More information about the llvm-commits mailing list