[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