summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/asan/asan_errors.cpp3
-rw-r--r--lib/lsan/lsan.cpp2
-rw-r--r--lib/msan/msan.cpp2
-rw-r--r--lib/tsan/rtl/tsan_rtl.cpp2
-rw-r--r--lib/ubsan/ubsan_signals_standalone.cpp5
5 files changed, 8 insertions, 6 deletions
diff --git a/lib/asan/asan_errors.cpp b/lib/asan/asan_errors.cpp
index 0ef97794b..541c6e035 100644
--- a/lib/asan/asan_errors.cpp
+++ b/lib/asan/asan_errors.cpp
@@ -35,7 +35,8 @@ static void OnStackUnwind(const SignalContext &sig,
// corresponding code in the sanitizer_common and we use this callback to
// print it.
static_cast<const ScarinessScoreBase *>(callback_context)->Print();
- stack->Unwind(sig.pc, sig.bp, sig.context, fast);
+ stack->Unwind(StackTrace::GetNextInstructionPc(sig.pc), sig.bp, sig.context,
+ fast);
}
void ErrorDeadlySignal::Print() {
diff --git a/lib/lsan/lsan.cpp b/lib/lsan/lsan.cpp
index deabf044a..4ce03046f 100644
--- a/lib/lsan/lsan.cpp
+++ b/lib/lsan/lsan.cpp
@@ -89,7 +89,7 @@ static void InitializeFlags() {
static void OnStackUnwind(const SignalContext &sig, const void *,
BufferedStackTrace *stack) {
- stack->Unwind(sig.pc, sig.bp, sig.context,
+ stack->Unwind(StackTrace::GetNextInstructionPc(sig.pc), sig.bp, sig.context,
common_flags()->fast_unwind_on_fatal);
}
diff --git a/lib/msan/msan.cpp b/lib/msan/msan.cpp
index da3534bc5..6ea63cb2c 100644
--- a/lib/msan/msan.cpp
+++ b/lib/msan/msan.cpp
@@ -378,7 +378,7 @@ void __msan_warning_noreturn() {
static void OnStackUnwind(const SignalContext &sig, const void *,
BufferedStackTrace *stack) {
- stack->Unwind(sig.pc, sig.bp, sig.context,
+ stack->Unwind(StackTrace::GetNextInstructionPc(sig.pc), sig.bp, sig.context,
common_flags()->fast_unwind_on_fatal);
}
diff --git a/lib/tsan/rtl/tsan_rtl.cpp b/lib/tsan/rtl/tsan_rtl.cpp
index 39b9cea52..3f3c0cce1 100644
--- a/lib/tsan/rtl/tsan_rtl.cpp
+++ b/lib/tsan/rtl/tsan_rtl.cpp
@@ -338,7 +338,7 @@ static void CheckShadowMapping() {
#if !SANITIZER_GO
static void OnStackUnwind(const SignalContext &sig, const void *,
BufferedStackTrace *stack) {
- stack->Unwind(sig.pc, sig.bp, sig.context,
+ stack->Unwind(StackTrace::GetNextInstructionPc(sig.pc), sig.bp, sig.context,
common_flags()->fast_unwind_on_fatal);
}
diff --git a/lib/ubsan/ubsan_signals_standalone.cpp b/lib/ubsan/ubsan_signals_standalone.cpp
index 627b3c4d8..2c91db8ca 100644
--- a/lib/ubsan/ubsan_signals_standalone.cpp
+++ b/lib/ubsan/ubsan_signals_standalone.cpp
@@ -45,8 +45,9 @@ namespace __ubsan {
static void OnStackUnwind(const SignalContext &sig, const void *,
BufferedStackTrace *stack) {
- ubsan_GetStackTrace(stack, kStackTraceMax, sig.pc, sig.bp, sig.context,
- common_flags()->fast_unwind_on_fatal);
+ ubsan_GetStackTrace(stack, kStackTraceMax,
+ StackTrace::GetNextInstructionPc(sig.pc), sig.bp,
+ sig.context, common_flags()->fast_unwind_on_fatal);
}
static void UBsanOnDeadlySignal(int signo, void *siginfo, void *context) {