This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug debug/55665] New: [4.8 Regression] Missing DW_TAG_lexical_block PC range


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55665

             Bug #: 55665
           Summary: [4.8 Regression] Missing DW_TAG_lexical_block PC range
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: debug
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: jan.kratochvil@redhat.com
            Target: x86_64-unknown-linux-gnu


This is a regression for GDB gdb.cp/abstract-origin.exp.

PASS: gcc (GCC) 4.7.3 20121212 (prerelease)
FAIL: gcc (GCC) 4.8.0 20121212 (experimental)
(regression sometimes in ~ the last month)

PASS was:
 <1><9e>: Abbrev Number: 14 (DW_TAG_subprogram)
    <9f>   DW_AT_abstract_origin: <0x5a>
    <a3>   DW_AT_linkage_name: (indirect string, offset: 0xac): _ZN1AC2Ei
[...]
 <2><d1>: Abbrev Number: 16 (DW_TAG_lexical_block)
    <d2>   DW_AT_low_pc      : 0x40081e
    <da>   DW_AT_high_pc     : 0x400891
 <3><e2>: Abbrev Number: 17 (DW_TAG_variable)
    <e3>   DW_AT_abstract_origin: <0x7c>
and above:
 <2><7b>: Abbrev Number: 11 (DW_TAG_lexical_block)
 <3><7c>: Abbrev Number: 12 (DW_TAG_variable)
    <7d>   DW_AT_name        : (indirect string, offset: 0x51): problem
[...]

BTW <d1> was missing DW_AT_abstract_origin <0x7b>; but GDB works with that.

FAIL is:
 <1><9e>: Abbrev Number: 14 (DW_TAG_subprogram)
    <9f>   DW_AT_abstract_origin: <0x5a>
    <a3>   DW_AT_linkage_name: (indirect string, offset: 0xa9): _ZN1AC2Ei
[...]
<nothing for DW_TAG_variable>

This means GDB correctly inherits the DIE from inherited DIE tree:
 <2><7b>: Abbrev Number: 11 (DW_TAG_lexical_block)
 <3><7c>: Abbrev Number: 12 (DW_TAG_variable)
    <7d>   DW_AT_name        : (indirect string, offset: 0x97): problem
[...]

But that DW_TAG_lexical_block has no DW_AT_low/high_pc (it cannot have as it is
not the concrete instance) which is a regression.
GDB currently ignores DW_TAG_lexical_block without DW_AT_low/high_pc/range.

While GDB could recognize DW_TAG_lexical_block without DW_AT_low/high_pc it
would be still a debug info quality regression as the GCC-4.7 range there is
more narrow than the DW_TAG_subprogram PC range.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]