summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAlexey Samsonov <samsonov@google.com>2014-04-18 22:22:44 +0000
committerAlexey Samsonov <samsonov@google.com>2014-04-18 22:22:44 +0000
commite0d2d7fb26a2dac464f6e245594176a2a7f1ccf7 (patch)
tree94d42a9b65ae304aff4453b7b1e3d3d013f6f150 /test
parent1c60993799ad7ade9eea6f2603525d2086e90729 (diff)
downloadllvm-e0d2d7fb26a2dac464f6e245594176a2a7f1ccf7.tar.gz
llvm-e0d2d7fb26a2dac464f6e245594176a2a7f1ccf7.tar.bz2
llvm-e0d2d7fb26a2dac464f6e245594176a2a7f1ccf7.tar.xz
[llvm-symbolizer] Print file/line for a PC even if there is no DIE describing it.
This is important for symbolizing executables with debug info in unavailable .dwo files. Even if all DIE entries are missing, we can still symbolize an address: function name can be fetched from symbol table, and file/line info can be fetched from line table. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206665 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rwxr-xr-xtest/DebugInfo/Inputs/llvm-symbolizer-dwo-testbin0 -> 9579 bytes
-rw-r--r--test/DebugInfo/Inputs/llvm-symbolizer-dwo-test.cc18
-rw-r--r--test/DebugInfo/llvm-symbolizer.test4
3 files changed, 22 insertions, 0 deletions
diff --git a/test/DebugInfo/Inputs/llvm-symbolizer-dwo-test b/test/DebugInfo/Inputs/llvm-symbolizer-dwo-test
new file mode 100755
index 0000000000..c28c3d277a
--- /dev/null
+++ b/test/DebugInfo/Inputs/llvm-symbolizer-dwo-test
Binary files differ
diff --git a/test/DebugInfo/Inputs/llvm-symbolizer-dwo-test.cc b/test/DebugInfo/Inputs/llvm-symbolizer-dwo-test.cc
new file mode 100644
index 0000000000..ea0967a263
--- /dev/null
+++ b/test/DebugInfo/Inputs/llvm-symbolizer-dwo-test.cc
@@ -0,0 +1,18 @@
+int f(int a, int b) {
+ return a + b;
+}
+
+int g(int a) {
+ return a + 1;
+}
+
+
+int main() {
+ return f(2, g(2));
+}
+
+// Built with Clang 3.5.0:
+// $ mkdir -p /tmp/dbginfo
+// $ cp llvm-symbolizer-dwo-test.cc /tmp/dbginfo
+// $ cd /tmp/dbginfo
+// $ clang -gsplit-dwarf llvm-symbolizer-dwo-test.cc
diff --git a/test/DebugInfo/llvm-symbolizer.test b/test/DebugInfo/llvm-symbolizer.test
index 4b532f3e4a..6d51fe96c4 100644
--- a/test/DebugInfo/llvm-symbolizer.test
+++ b/test/DebugInfo/llvm-symbolizer.test
@@ -8,6 +8,7 @@ RUN: echo "\"%p/Inputs/dwarfdump-test3.elf-x86-64 space\" 0x633" >> %t.input
RUN: echo "%p/Inputs/macho-universal 0x1f84" >> %t.input
RUN: echo "%p/Inputs/macho-universal:i386 0x1f67" >> %t.input
RUN: echo "%p/Inputs/macho-universal:x86_64 0x100000f05" >> %t.input
+RUN: echo "%p/Inputs/llvm-symbolizer-dwo-test 0x400514" >> %t.input
RUN: llvm-symbolizer --functions --inlining --demangle=false \
RUN: --default-arch=i386 < %t.input | FileCheck %s
@@ -48,6 +49,9 @@ CHECK: main
CHECK: _Z3inci
CHECK: _Z3inci
+CHECK: main
+CHECK-NEXT: llvm-symbolizer-dwo-test.cc:11
+
RUN: echo "unexisting-file 0x1234" > %t.input2
RUN: llvm-symbolizer < %t.input2