[Dwarf-Discuss] Regarding concrete inlined and out-of-line inlined instances

Ramana ramana.venkat83 at gmail.com
Tue Jun 10 23:54:29 PDT 2014


Hi,

I have the below debug information (dwarf4) generated by the GCC
compiler v4.8.2 for an inlined function. Please help me with the
following query.

In the concrete inlined instance of 'ext2_lookup', its DW_AT_entry_pc
value (0xc0000000001b49d0) is overlapping with the address range i.e.
DW_AT_low_pc (0xc0000000001b4980) and DW_AT_high_pc
(0xc0000000001b4a60) of the out-of-line instance root entry. Is this
overlapping legitimate and how?

 <1><1038302>: Abbrev Number: 51 (DW_TAG_subprogram)
    <1038303>   DW_AT_name        : (indirect string, offset:
0x7a615): ext2_lookup
    <1038307>   DW_AT_decl_file   : 1
    <1038308>   DW_AT_decl_line   : 58
    <1038309>   DW_AT_prototyped  : 1
    <103830a>   DW_AT_type        : <0x10330af>
    <103830e>   DW_AT_inline      : 1   (inlined)
    <103830f>   DW_AT_sibling     : <0x1038359>
 <2><1038313>: Abbrev Number: 52 (DW_TAG_formal_parameter)
    <1038314>   DW_AT_name        : dir
    <1038318>   DW_AT_decl_file   : 1
    <1038319>   DW_AT_decl_line   : 58
    <103831a>   DW_AT_type        : <0x103331d>
 <2><103831e>: Abbrev Number: 56 (DW_TAG_formal_parameter)
    <103831f>   DW_AT_name        : (indirect string, offset: 0x4fb14): dentry
    <1038323>   DW_AT_decl_file   : 1
    <1038324>   DW_AT_decl_line   : 58
    <1038325>   DW_AT_type        : <0x10330af>
 <2><1038329>: Abbrev Number: 56 (DW_TAG_formal_parameter)
    <103832a>   DW_AT_name        : (indirect string, offset: 0x1a72d5): flags
    <103832e>   DW_AT_decl_file   : 1
    <103832f>   DW_AT_decl_line   : 58
    <1038330>   DW_AT_type        : <0x1030083>
 <2><1038334>: Abbrev Number: 61 (DW_TAG_variable)
    <1038335>   DW_AT_name        : (indirect string, offset: 0x7a533): inode
    <1038339>   DW_AT_decl_file   : 1
    <103833a>   DW_AT_decl_line   : 60
    <103833b>   DW_AT_type        : <0x103331d>
 <2><103833f>: Abbrev Number: 57 (DW_TAG_variable)
    <1038340>   DW_AT_name        : ino
    <1038344>   DW_AT_decl_file   : 1
    <1038345>   DW_AT_decl_line   : 61
    <1038346>   DW_AT_type        : <0x1030243>
 <2><103834a>: Abbrev Number: 62 (DW_TAG_variable)
    <103834b>   DW_AT_name        : (indirect string, offset: 0xdd81): __func__
    <103834f>   DW_AT_type        : <0x1038369>
    <1038353>   DW_AT_artificial  : 1
    <1038354>   DW_AT_const_value : (indirect string, offset:
0x7a615): ext2_lookup
 <1><1038359>: Abbrev Number: 8 (DW_TAG_array_type)
    <103835a>   DW_AT_type        : <0x1030168>
    <103835e>   DW_AT_sibling     : <0x1038369>
 <2><1038362>: Abbrev Number: 9 (DW_TAG_subrange_type)
    <1038363>   DW_AT_type        : <0x1030129>
    <1038367>   DW_AT_upper_bound : 11
 <1><1038369>: Abbrev Number: 11 (DW_TAG_const_type)
    <103836a>   DW_AT_type        : <0x1038359>
..............................
...
................................. (some intermediate DIE entries)
.................................
 <1><10397ce>: Abbrev Number: 92 (DW_TAG_subprogram)
    <10397cf>   DW_AT_abstract_origin: <0x1038302>
    <10397d3>   DW_AT_low_pc      : 0xc0000000001b4980
    <10397db>   DW_AT_high_pc     : 0xc0000000001b4a60
    <10397e3>   DW_AT_frame_base  : 0x53243a    (location list)
    <10397e7>   DW_AT_GNU_all_call_sites: 1
    <10397e8>   DW_AT_sibling     : <0x10398eb>
 <2><10397ec>: Abbrev Number: 70 (DW_TAG_formal_parameter)
    <10397ed>   DW_AT_abstract_origin: <0x1038313>
    <10397f1>   DW_AT_location    : 0x5324c5    (location list)
 <2><10397f5>: Abbrev Number: 70 (DW_TAG_formal_parameter)
    <10397f6>   DW_AT_abstract_origin: <0x103831e>
    <10397fa>   DW_AT_location    : 0x53254d    (location list)
 <2><10397fe>: Abbrev Number: 70 (DW_TAG_formal_parameter)
    <10397ff>   DW_AT_abstract_origin: <0x1038329>
    <1039803>   DW_AT_location    : 0x5325e8    (location list)
 <2><1039807>: Abbrev Number: 93 (DW_TAG_variable)
    <1039808>   DW_AT_abstract_origin: <0x1038334>
 <2><103980c>: Abbrev Number: 93 (DW_TAG_variable)
    <103980d>   DW_AT_abstract_origin: <0x103833f>
 <2><1039811>: Abbrev Number: 94 (DW_TAG_variable)
    <1039812>   DW_AT_abstract_origin: <0x103834a>
    <1039816>   DW_AT_location    : 9 byte block: 3 c0 0 0 0 0 79 3e
a0         (DW_OP_addr: c000000000793ea0)
<2><1039820>: Abbrev Number: 95 (DW_TAG_inlined_subroutine)
    <1039821>   DW_AT_abstract_origin: <0x1038302>
    <1039825>   DW_AT_entry_pc    : 0xc0000000001b49d0
    <103982d>   DW_AT_ranges      : 0x14a0c0
    <1039831>   DW_AT_call_file   : 1
    <1039832>   DW_AT_call_line   : 58
 <3><1039833>: Abbrev Number: 96 (DW_TAG_formal_parameter)
    <1039834>   DW_AT_abstract_origin: <0x103831e>
 <3><1039838>: Abbrev Number: 70 (DW_TAG_formal_parameter)
    <1039839>   DW_AT_abstract_origin: <0x1038313>
    <103983d>   DW_AT_location    : 0x53264a    (location list)
 <3><1039841>: Abbrev Number: 86 (DW_TAG_lexical_block)
    <1039842>   DW_AT_ranges      : 0x14a0f0
 <4><1039846>: Abbrev Number: 87 (DW_TAG_variable)
    <1039847>   DW_AT_abstract_origin: <0x1038334>
    <103984b>   DW_AT_location    : 0x532696    (location list)
 <4><103984f>: Abbrev Number: 87 (DW_TAG_variable)
    <1039850>   DW_AT_abstract_origin: <0x103833f>
    <1039854>   DW_AT_location    : 0x5326f4    (location list)
 <4><1039858>: Abbrev Number: 96 (DW_TAG_formal_parameter)
    <1039859>   DW_AT_abstract_origin: <0x1038329>
 <4><103985d>: Abbrev Number: 94 (DW_TAG_variable)
    <103985e>   DW_AT_abstract_origin: <0x103834a>
    <1039862>   DW_AT_location    : 9 byte block: 3 c0 0 0 0 0 79 3e
a0         (DW_OP_addr: c000000000793ea0)

Thank you,
Venkata Ramanaiah N


More information about the Dwarf-Discuss mailing list