diff options
author | Alexey Samsonov <samsonov@google.com> | 2014-04-18 22:22:44 +0000 |
---|---|---|
committer | Alexey Samsonov <samsonov@google.com> | 2014-04-18 22:22:44 +0000 |
commit | e0d2d7fb26a2dac464f6e245594176a2a7f1ccf7 (patch) | |
tree | 94d42a9b65ae304aff4453b7b1e3d3d013f6f150 /test | |
parent | 1c60993799ad7ade9eea6f2603525d2086e90729 (diff) | |
download | llvm-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-x | test/DebugInfo/Inputs/llvm-symbolizer-dwo-test | bin | 0 -> 9579 bytes | |||
-rw-r--r-- | test/DebugInfo/Inputs/llvm-symbolizer-dwo-test.cc | 18 | ||||
-rw-r--r-- | test/DebugInfo/llvm-symbolizer.test | 4 |
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 Binary files differnew file mode 100755 index 0000000000..c28c3d277a --- /dev/null +++ b/test/DebugInfo/Inputs/llvm-symbolizer-dwo-test 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 |