From e0d2d7fb26a2dac464f6e245594176a2a7f1ccf7 Mon Sep 17 00:00:00 2001 From: Alexey Samsonov Date: Fri, 18 Apr 2014 22:22:44 +0000 Subject: [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 --- test/DebugInfo/Inputs/llvm-symbolizer-dwo-test | Bin 0 -> 9579 bytes test/DebugInfo/Inputs/llvm-symbolizer-dwo-test.cc | 18 ++++++++++++++++++ test/DebugInfo/llvm-symbolizer.test | 4 ++++ 3 files changed, 22 insertions(+) create mode 100755 test/DebugInfo/Inputs/llvm-symbolizer-dwo-test create mode 100644 test/DebugInfo/Inputs/llvm-symbolizer-dwo-test.cc (limited to 'test') 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 Binary files /dev/null and b/test/DebugInfo/Inputs/llvm-symbolizer-dwo-test 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 -- cgit v1.2.3