summaryrefslogtreecommitdiff
path: root/lib/asan/asan_errors.cc
diff options
context:
space:
mode:
Diffstat (limited to 'lib/asan/asan_errors.cc')
-rw-r--r--lib/asan/asan_errors.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/asan/asan_errors.cc b/lib/asan/asan_errors.cc
index a571a717a..7f754d557 100644
--- a/lib/asan/asan_errors.cc
+++ b/lib/asan/asan_errors.cc
@@ -53,6 +53,11 @@ static void MaybeDumpInstructionBytes(uptr pc) {
Report("%s", str.data());
}
+static void MaybeDumpRegisters(void *context) {
+ if (!flags()->dump_registers) return;
+ SignalContext::DumpAllRegisters(context);
+}
+
void ErrorDeadlySignal::Print() {
Decorator d;
Printf("%s", d.Warning());
@@ -78,6 +83,7 @@ void ErrorDeadlySignal::Print() {
common_flags()->fast_unwind_on_fatal);
stack.Print();
MaybeDumpInstructionBytes(pc);
+ MaybeDumpRegisters(context);
Printf("AddressSanitizer can not provide additional info.\n");
ReportErrorSummary(description, &stack);
}