[llvm-dev] GDB doesn't work with IR-originated debug info
Aliaksei Zasenka via llvm-dev
llvm-dev at lists.llvm.org
Sat Apr 29 02:45:14 PDT 2017
Hi Jameson,
excuse my being silent so long. I've checked again and everything is OK in
4.0 and in the latest trunk. My working version is 3.9 but I was sure that
I had checked with 4.0 as well.
Btw, I found a workaround for 3.9. If -generate-type-units is set to llc
the correct relocations are generated.
Thanks for your support.
2017-04-11 23:39 GMT+03:00 Jameson Nash <vtjnash at gmail.com>:
> What version of LLVM are you using? This looks similar to a bug that I
> fixed in 4.0 (R290809). I mostly only tested for `-dwarf-version 4`, so you
> may get better results with using the newer format as well. But if it's
> broken on the latest version of LLVM, can you post a gist/pastebin of the
> LL file (e.g. `clang -S -emit-llvm`)? That'll help with reproducing it and
> seeing which entry is still getting relocated incorrectly in dwarf version
> 2.
>
>
> On Tue, Apr 4, 2017 at 11:25 AM Aliaksei Zasenka via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>> Hi all,
>>
>> Need your help.
>>
>> I added some debug information to my code according to Kaleidoscope-9
>> sample and got stuck with a GDB error:
>>
>> (gdb) info functions
>> invalid dwarf2 offset 1849950870
>>
>>
>> My module is a DLL built with llc+ld toolchain. Target triple:
>> 'i686-w64-mingw32'.
>> Looking this offset (1849950870 == 0x6e440296) in dwarfdump output of the
>> dll gave the following:
>>
>> 0x00000296: DW_TAG_base_type [10]
>> DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000068f] =
>> "void")
>> DW_AT_encoding [DW_FORM_data1] (0x00)
>> DW_AT_byte_size [DW_FORM_data1] (0x00)
>> ....
>> 0x00000cf8: DW_TAG_subprogram [16] *
>> DW_AT_low_pc [DW_FORM_addr] (0x000000006e384c30)
>> DW_AT_high_pc [DW_FORM_data4] (0x000002b4)
>> DW_AT_frame_base [DW_FORM_exprloc] (<0x1> 54 )
>> DW_AT_name [DW_FORM_strp] ( .debug_str[0x00001616] =
>> "FB_FPUMP at HORIZONTAL")
>> DW_AT_type [DW_FORM_ref_addr] (*0x000000006e440296*)
>> DW_
>> AT_external [DW_FORM_flag_present] (true)
>>
>>
>> In the original object file the corresponding record was:
>>
>> 0x00000296: DW_TAG_base_type [10]
>> DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000068f] =
>> "void")
>> DW_AT_encoding [DW_FORM_data1] (0x00)
>> DW_AT_byte_size [DW_FORM_data1] (0x00)
>> ....
>>
>> 0x00000cf8: DW_TAG_subprogram [16] *
>> DW_AT_low_pc [DW_FORM_addr] (0x00000000000037e0)
>> DW_AT_high_pc [DW_FORM_data4] (0x000002b4)
>> DW_AT_frame_base [DW_FORM_exprloc] (<0x1> 54 )
>> DW_AT_name [DW_FORM_strp] ( .debug_str[0x00001616] =
>> "FB_FPUMP at HORIZONTAL")
>> DW_AT_type [DW_FORM_ref_addr] (*0x0000000000000296*)
>> DW_AT_external [DW_FORM_flag_present] (true)
>>
>>
>> There are lots of subprogram records like this.
>>
>> Any ideas what may be done to fix that?
>>
>> My debugger config:
>> GNU gdb (GDB) 7.10.1
>> This GDB was configured as "i686-w64-mingw32".
>> OS : Win7 64-bit
>>
>> --
>> Best regards,
>> Alexey Zasenko
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170429/1c0741a9/attachment.html>
More information about the llvm-dev
mailing list