diff options
author | Sergey Matveev <earthdok@google.com> | 2014-05-26 13:08:08 +0000 |
---|---|---|
committer | Sergey Matveev <earthdok@google.com> | 2014-05-26 13:08:08 +0000 |
commit | 51d28680772cb0b03b0d9ceb0f6aef60a0e9aece (patch) | |
tree | a8fd95801c0d3bd841edaab39ac947102a78d434 /lib/msan/msan.cc | |
parent | 493c46543f37356c41b56b4249a4f3e9f3738e30 (diff) |
[MSan] Implement __sanitizer_print_stack_trace().
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@209625 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/msan/msan.cc')
-rw-r--r-- | lib/msan/msan.cc | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/lib/msan/msan.cc b/lib/msan/msan.cc index 058ef7e48..5ee92bff1 100644 --- a/lib/msan/msan.cc +++ b/lib/msan/msan.cc @@ -211,9 +211,7 @@ void PrintWarningWithOrigin(uptr pc, uptr bp, u32 origin) { ++msan_report_count; - StackTrace stack; - GetStackTrace(&stack, kStackTraceMax, pc, bp, - common_flags()->fast_unwind_on_fatal); + GET_FATAL_STACK_TRACE_PC_BP(pc, bp); u32 report_origin = (__msan_get_track_origins() && OriginIsValid(origin)) ? origin : 0; @@ -422,9 +420,7 @@ void __msan_set_expect_umr(int expect_umr) { } else if (!msan_expected_umr_found) { GET_CALLER_PC_BP_SP; (void)sp; - StackTrace stack; - GetStackTrace(&stack, kStackTraceMax, pc, bp, - common_flags()->fast_unwind_on_fatal); + GET_FATAL_STACK_TRACE_PC_BP(pc, bp); ReportExpectedUMRNotFound(&stack); Die(); } @@ -662,3 +658,11 @@ SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE const char* __msan_default_options() { return ""; } } // extern "C" #endif + +extern "C" { +SANITIZER_INTERFACE_ATTRIBUTE +void __sanitizer_print_stack_trace() { + GET_FATAL_STACK_TRACE_PC_BP(StackTrace::GetCurrentPc(), GET_CURRENT_FRAME()); + stack.Print(); +} +} // extern "C" |