[llvm-dev] Debug symbols are missing in elf
Robinson, Paul via llvm-dev
llvm-dev at lists.llvm.org
Thu Apr 23 08:02:55 PDT 2020
> -----Original Message-----
> From: Nagaraju Mekala <nagaraju.mekala87 at gmail.com>
> Sent: Thursday, April 23, 2020 7:08 AM
> To: David Blaikie <dblaikie at gmail.com>
> Cc: Robinson, Paul <paul.robinson at sony.com>; llvm-dev at lists.llvm.org
> Subject: Re: [llvm-dev] Debug symbols are missing in elf
>
> On Wed, Apr 22, 2020 at 10:34 PM David Blaikie <dblaikie at gmail.com> wrote:
> >
> >
> >
> > On Wed, Apr 22, 2020 at 9:28 AM Nagaraju Mekala via llvm-dev <llvm-
> dev at lists.llvm.org> wrote:
> >>
> >> On Tue, Apr 21, 2020 at 6:16 PM Robinson, Paul <paul.robinson at sony.com>
> wrote:
> >> >
> >> >
> >> >
> >> > > -----Original Message-----
> >> > > From: llvm-dev <llvm-dev-bounces at lists.llvm.org> On Behalf Of
> Nagaraju
> >> > > Mekala via llvm-dev
> >> > > Sent: Tuesday, April 21, 2020 6:04 AM
> >> > > To: jh7370.2008 at my.bristol.ac.uk
> >> > > Cc: LLVM Developers Mailing List <llvm-dev at lists.llvm.org>
> >> > > Subject: Re: [llvm-dev] Debug symbols are missing in elf
> >> > >
> >> > > Hi James,
> >> > >
> >> > > Thanks for reply.
> >> > > When I looked in to the generated debug dump from the object file I
> >> > > found that DW_AT_name is always (indirect string, offset: 0x0):
> clang
> >> > > version 8.0.1, instead of variable names.
> >> >
> >> > That symptom suggests that relocations from .debug_info to .debug_str
> >> > are not being handled correctly. Either your backend is not emitting
> >> > them correctly, or the dumper does not know what to do with them.
> >> >
> >> > If you are able to dump the .rela.debug_info section and it looks
> >> > reasonable, the fault is most likely with the dumper. If you are
> >> > using llvm-dwarfdump then that should not be hard to solve.
> >> > --paulr
> >> >
> >> Hi Paulr,
> >> Thanks for the reply.
> >> From your suggestion I have used llvm-dwarfdump and was able to figure
> >> out that debug_info section was incomplete.
> >
> >
> Hi David,
>
> Thanks for the reply.
> > What command did you run, on what file, and what was the output?
>
> I ran llvm-dwarf with -verbose option. It gave me the verbose print as
> below
> 0x0000000b: DW_TAG_compile_unit [1] *
> DW_AT_producer [DW_FORM_strp] (
> .debug_str[0x00000000] = "clang version 8.0.1 ")
> DW_AT_language [DW_FORM_data2] (DW_LANG_C99)
> DW_AT_name [DW_FORM_strp] ( .debug_str[0x00000000] =
> "clang version 8.0.1 ")
> DW_AT_stmt_list [DW_FORM_sec_offset] (0x00000000)
> DW_AT_comp_dir [DW_FORM_strp] (
> .debug_str[0x00000000] = "clang version 8.0.1 ")
> Similarly as above snippet .debug_str is always pointing to 0x00000
> for everything.
I am still suspecting that the relocations aren't handled correctly.
Does llvm/lib/Object/RelocationResolver.cpp support your target?
--paulr
> >>
> >> Can you please help me in finding which part of the target(Backend
> >> files) will construct the dwarf data, especially debug_info.
> >
> >
> > LLVM's DWARF generation is implemented in
> llvm/lib/CodeGen/AsmPrinter/Dwarf* files
> Are there any backend specific functions or files which will effect
> dwarf generation of that particular target?
> I can find only "SupportsDebugInformation = true;" in MCAsmInfo.
>
> -Nagaraju
> >>
> >>
> >> Thanks in Advance,
> >> Nagaraju
> >> > >
> >> > > Below is a sample output of the debug dump.
> >> > >
> >> > > Compilation Unit @ offset 0x0:
> >> > > Length: 0x6a (32-bit)
> >> > > Version: 4
> >> > > Abbrev Offset: 0x0
> >> > > Pointer Size: 4
> >> > > <0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
> >> > > <c> DW_AT_producer : (indirect string, offset: 0x0): clang
> >> > > version 8.0.1
> >> > > <10> DW_AT_language : 12 (ANSI C99)
> >> > > <12> DW_AT_name : (indirect string, offset: 0x0):
> clang
> >> > > version 8.0.1
> >> > > <16> DW_AT_stmt_list : 0x0
> >> > > <1a> DW_AT_comp_dir : (indirect string, offset: 0x0):
> clang
> >> > > version 8.0.1
> >> > > <1e> DW_AT_low_pc : 0x0
> >> > > <22> DW_AT_high_pc : 0x6c
> >> > > <1><26>: Abbrev Number: 2 (DW_TAG_subprogram)
> >> > > <27> DW_AT_low_pc : 0x0
> >> > > <2b> DW_AT_high_pc : 0x6c
> >> > > <2f> DW_AT_frame_base : 1 byte block: 51 (DW_OP_reg1
> (r1))
> >> > > <31> DW_AT_name : (indirect string, offset: 0x0):
> clang
> >> > > version 8.0.1
> >> > > <35> DW_AT_decl_file : 1
> >> > > <36> DW_AT_decl_line : 51
> >> > > <37> DW_AT_type : <0x66>
> >> > > <3b> DW_AT_external : 1
> >> > >
> >> > > -Nagaraju
> >> >
> >> _______________________________________________
> >> LLVM Developers mailing list
> >> llvm-dev at lists.llvm.org
> >> https://urldefense.com/v3/__https://lists.llvm.org/cgi-
> bin/mailman/listinfo/llvm-
> dev__;!!JmoZiZGBv3RvKRSx!qi4GZS3A247leq6emwOos2zrzpOu4VcG52tDez40r-
> UDF_pjjcVB68-L5MIBp8suIg$
More information about the llvm-dev
mailing list