[cfi] Make sanstats print address of the check

Summary: Help with off-line symbolization or other type debugging.

Reviewers: pcc

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D53606

llvm-svn: 347600
This commit is contained in:
Vitaly Buka 2018-11-26 21:48:45 +00:00
parent 6a38a5effe
commit db87ced890
2 changed files with 15 additions and 14 deletions

View File

@ -25,19 +25,19 @@
# RUN: sanstats %t.stats | FileCheck %s
# CHECK: /tmp{{[/\\]}}f.c:1 f1 cfi-vcall 1
# CHECK: /tmp{{[/\\]}}f.c:2 f2 cfi-nvcall 2
# CHECK: /tmp{{[/\\]}}f.c:3 f3 cfi-derived-cast 3
# CHECK: /tmp{{[/\\]}}f.c:1 f1 cfi-unrelated-cast 4
# CHECK: /tmp{{[/\\]}}f.c:2 f2 cfi-icall 5
# CHECK: /tmp{{[/\\]}}f.c:3 f3 <unknown> 6
# CHECK: 0x0000000000000000 /tmp{{[/\\]}}f.c:1 f1 cfi-vcall 1
# CHECK: 0x0000000000000010 /tmp{{[/\\]}}f.c:2 f2 cfi-nvcall 2
# CHECK: 0x0000000000000020 /tmp{{[/\\]}}f.c:3 f3 cfi-derived-cast 3
# CHECK: 0x0000000000000000 /tmp{{[/\\]}}f.c:1 f1 cfi-unrelated-cast 4
# CHECK: 0x0000000000000010 /tmp{{[/\\]}}f.c:2 f2 cfi-icall 5
# CHECK: 0x0000000000000020 /tmp{{[/\\]}}f.c:3 f3 <unknown> 6
# CHECK: /tmp{{[/\\]}}f.c:3 f3 cfi-vcall 7
# CHECK: /tmp{{[/\\]}}f.c:2 f2 cfi-nvcall 8
# CHECK: /tmp{{[/\\]}}f.c:1 f1 cfi-derived-cast 9
# CHECK: /tmp{{[/\\]}}f.c:3 f3 cfi-unrelated-cast 11
# CHECK: /tmp{{[/\\]}}f.c:2 f2 cfi-icall 12
# CHECK: /tmp{{[/\\]}}f.c:1 f1 <unknown> 14
# CHECK: 0x0000000000000020 /tmp{{[/\\]}}f.c:3 f3 cfi-vcall 7
# CHECK: 0x0000000000000010 /tmp{{[/\\]}}f.c:2 f2 cfi-nvcall 8
# CHECK: 0x0000000000000000 /tmp{{[/\\]}}f.c:1 f1 cfi-derived-cast 9
# CHECK: 0x0000000000000020 /tmp{{[/\\]}}f.c:3 f3 cfi-unrelated-cast 11
# CHECK: 0x0000000000000010 /tmp{{[/\\]}}f.c:2 f2 cfi-icall 12
# CHECK: 0x0000000000000000 /tmp{{[/\\]}}f.c:1 f1 <unknown> 14
--- !ELF
FileHeader:

View File

@ -81,8 +81,9 @@ const char *ReadModule(char SizeofPtr, const char *Begin, const char *End) {
// remove one from the address to get the correct DI.
if (Expected<DILineInfo> LineInfo =
Symbolizer.symbolizeCode(Filename, Addr - 1)) {
llvm::outs() << LineInfo->FileName << ':' << LineInfo->Line << ' '
<< LineInfo->FunctionName << ' ';
llvm::outs() << format_hex(Addr - 1, 18) << ' ' << LineInfo->FileName
<< ':' << LineInfo->Line << ' ' << LineInfo->FunctionName
<< ' ';
} else {
logAllUnhandledErrors(LineInfo.takeError(), llvm::outs(), "<error> ");
}