[PATCH] D58267: [hwasan] Fix unsymbolized stack history printing.
Evgenii Stepanov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 14 17:41:19 PST 2019
eugenis created this revision.
eugenis added reviewers: kcc, pcc.
Herald added subscribers: jdoerfert, kubamracek.
Herald added a project: LLVM.
When symbols are unavailable, the current code prints
sp: ... pc: ... (null) (null)
instead of module name + offset.
Change the output to include module name and offset, and also to match
the regular sanitizer stack trace format so that it is recognized by
symbolize.py out of the box.
https://reviews.llvm.org/D58267
Files:
compiler-rt/lib/hwasan/hwasan_report.cc
compiler-rt/test/hwasan/TestCases/stack-uar.c
Index: compiler-rt/test/hwasan/TestCases/stack-uar.c
===================================================================
--- compiler-rt/test/hwasan/TestCases/stack-uar.c
+++ compiler-rt/test/hwasan/TestCases/stack-uar.c
@@ -1,5 +1,6 @@
// Tests use-after-return detection and reporting.
// RUN: %clang_hwasan -O0 -fno-discard-value-names %s -o %t && not %run %t 2>&1 | FileCheck %s
+// RUN: %clang_hwasan -O0 -fno-discard-value-names %s -o %t && not %env_hwasan_opts=symbolize=0 %run %t 2>&1 | FileCheck %s --check-prefix=NOSYM
// REQUIRES: stable-runtime
@@ -37,5 +38,9 @@
// CHECK: buggy
// CHECK: 4096 zzz
+ // NOSYM: Previously allocated frames:
+ // NOSYM-NEXT: sp: 0x{{.*}} #0 0x{{.*}} ({{.*}}/stack-uar.c.tmp+0x{{.*}}){{$}}
+ // NOSYM-NEXT: 16 CCC;
+
// CHECK: SUMMARY: HWAddressSanitizer: tag-mismatch {{.*}} in main
}
Index: compiler-rt/lib/hwasan/hwasan_report.cc
===================================================================
--- compiler-rt/lib/hwasan/hwasan_report.cc
+++ compiler-rt/lib/hwasan/hwasan_report.cc
@@ -252,8 +252,8 @@
uptr pc_mask = (1ULL << 48) - 1;
uptr pc = record & pc_mask;
if (SymbolizedStack *frame = Symbolizer::GetOrInit()->SymbolizePC(pc)) {
- frame_desc.append(" sp: 0x%zx pc: %p ", sp, pc);
- RenderFrame(&frame_desc, "in %f %s:%l\n", 0, frame->info,
+ frame_desc.append(" sp: 0x%zx ", sp);
+ RenderFrame(&frame_desc, "#%n %p %F %L\n", 0, frame->info,
common_flags()->symbolize_vs_style,
common_flags()->strip_path_prefix);
frame->ClearAll();
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D58267.186953.patch
Type: text/x-patch
Size: 1630 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190215/3890b70b/attachment.bin>
More information about the llvm-commits
mailing list