[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