[Lldb-commits] [PATCH] D81334: 2/2: [lldb] Fix DW_TAG_GNU_call_site-DW_AT_low_pc as produced by GCC
Luboš Luňák via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Sun Aug 2 09:11:16 PDT 2020
llunak added a comment.
Herald added a subscriber: JDevlieghere.
The DWARF in the source file appears to be broken, the test fails for me on openSUSE 15.2 x86_64, with errors about DIE references outside of its CU. It fails even if I try to manually compile and debug the file, with Clang git or 9, GCC 7.5 or 9, LLDB git or 9, GDB 9.2.
seli at slim:~/tmp> clang -o DW_TAG_GNU_call_site-DW_AT_low_pc.s.tmp DW_TAG_GNU_call_site-DW_AT_low_pc.s
seli at slim:~/tmp> lldb DW_TAG_GNU_call_site-DW_AT_low_pc.s.tmp
(lldb) target create "DW_TAG_GNU_call_site-DW_AT_low_pc.s.tmp"
Current executable set to '/home/seli/tmp/DW_TAG_GNU_call_site-DW_AT_low_pc.s.tmp' (x86_64).
(lldb) r
Process 20675 launched: '/home/seli/tmp/DW_TAG_GNU_call_site-DW_AT_low_pc.s.tmp' (x86_64)
error: DW_TAG_GNU_call_site-DW_AT_low_pc.s.tmp DW_FORM_ref* DIE reference 0x24f is outside of its CU
error: DW_TAG_GNU_call_site-DW_AT_low_pc.s.tmp DW_FORM_ref* DIE reference 0x256 is outside of its CU
Process 20675 stopped
* thread #1, name = 'DW_TAG_GNU_call', stop reason = signal SIGTRAP
frame #0: 0x0000000000400520 DW_TAG_GNU_call_site-DW_AT_low_pc.s.tmp`a(p=<unavailable>) + 11
DW_TAG_GNU_call_site-DW_AT_low_pc.s.tmp`a:
-> 0x400520 <+11>: retq
DW_TAG_GNU_call_site-DW_AT_low_pc.s.tmp`main:
0x400521 <+0>: movl $0x1, %edi
0x400526 <+5>: callq 0x400515 ; a
0x40052b <+10>: movl $0x0, %eax
(lldb) p p
error: DW_TAG_GNU_call_site-DW_AT_low_pc.s.tmp DW_FORM_ref* DIE reference 0x24f is outside of its CU
error: DW_TAG_GNU_call_site-DW_AT_low_pc.s.tmp DW_FORM_ref* DIE reference 0x24f is outside of its CU
error: <lldb wrapper prefix>:43:31: no member named 'p' in namespace '$__lldb_local_vars'
using $__lldb_local_vars::p;
~~~~~~~~~~~~~~~~~~~~^
error: <user expression 0>:1:1: use of undeclared identifier 'p'
p
^
seli at slim:~/tmp> gcc -o DW_TAG_GNU_call_site-DW_AT_low_pc.s.tmp DW_TAG_GNU_call_site-DW_AT_low_pc.s
seli at slim:~/tmp> gdb -q DW_TAG_GNU_call_site-DW_AT_low_pc.s.tmp
Reading symbols from DW_TAG_GNU_call_site-DW_AT_low_pc.s.tmp...
Dwarf Error: Cannot find DIE at 0x24f referenced from DIE at 0x158 [in module /home/seli/tmp/DW_TAG_GNU_call_site-DW_AT_low_pc.s.tmp]
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D81334/new/
https://reviews.llvm.org/D81334
More information about the lldb-commits
mailing list