Question about "gnu.linkonce.wi." sections - Solved

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

Question about "gnu.linkonce.wi." sections - Solved

Ivan Pantushev
Thanks to Daniel Jacobowitz who pointed that the linker script needs the line:
    .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
there are no more ".gnu.linkonce.wi.*" sections and the offsets make sense.

The initial "Question about "gnu.linkonce.wi." sections" (07 Nov 2005) follows:


   I am decoding the debugging information in an Elf/Dwarf_2 file and there
   are references to type information in ".gnu.linkonce.wi.*" sections which
   I don't know how to resolve (binutils 2.16.1 and gcc 4.0.2 were used).

   Here is a part of the ".debug_info" section:
      Compilation Unit @ 0:
       Length:        79
       Version:       2
       Abbrev Offset: 0
       Pointer Size:  4
     <0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
         DW_AT_stmt_list   : 0
         DW_AT_low_pc      : 0x100000
         DW_AT_high_pc     : 0x100090
         DW_AT_name        : startup.gas
         DW_AT_comp_dir    : d:\test
         DW_AT_producer    : GNU AS 2.16.1
         DW_AT_language    : 32769 (MIPS assembler)
      Compilation Unit @ 53:
       Length:        235
       Version:       2
       Abbrev Offset: 20
       Pointer Size:  4
     <0><5e>: Abbrev Number: 3 (DW_TAG_compile_unit)
         DW_AT_macro_info  : 0
         DW_AT_stmt_list   : 98
         DW_AT_high_pc     : 0x100090
         DW_AT_low_pc      : 0x100090
         DW_AT_producer    : GNU C 4.0.2 -g
         DW_AT_language    : 1 (ANSI C)
         DW_AT_name        : board.c
         DW_AT_comp_dir    : d:\test
     - - -
     <1><c2>: Abbrev Number: 6 (DW_TAG_array_type)
         DW_AT_sibling     : <d2>
         DW_AT_type        : <#19>

   The last DW_AT_type references type information at offset 0x19, but there
   is no such information in the .debug_info section.

   There are 18 ".gnu.linkonce.wi.FILENAME.h.*" sections and there is a type
   info at offset 19 in each of them (instead of * there is a hexadecimal
   number like b10c314a for example).

   How do I find out which ".gnu.linkonce.wi.FILENAME.h.*" section is the one
   to be used for the type information (of the array type at offset 0xc2 in
   the ".debug_info" section)?

   Thank you for your time.

   Ivan Pantushev

Play 100s of games for FREE!