[cfi] Make sanstats print address of the check
authorVitaly Buka <vitalybuka@google.com>
Mon, 26 Nov 2018 21:48:45 +0000 (21:48 +0000)
committerVitaly Buka <vitalybuka@google.com>
Mon, 26 Nov 2018 21:48:45 +0000 (21:48 +0000)
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

llvm/test/tools/sanstats/elf.test
llvm/tools/sanstats/sanstats.cpp

index ab90b50..44a1268 100644 (file)
 
 # 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:      
index 71f0207..214aeea 100644 (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> ");
     }