Bug 1069382

Summary: gnat weird DWARF (but not in FSF GCC build)
Product: [Fedora] Fedora Reporter: Jan Kratochvil <jan.kratochvil>
Component: gccAssignee: Jakub Jelinek <jakub>
Status: CLOSED UPSTREAM QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 20CC: jakub, jan.kratochvil, law
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-02-25 20:28:47 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1069211    

Description Jan Kratochvil 2014-02-24 21:32:25 UTC
Description of problem:
FSF GDB HEAD internal errors on reading /usr/lib/debug/usr/bin/gnatbind.debug .
But I cannot reproduce such weird DWARF with upstream FSF GCC build.

It is more just FYI, gnat is not important in Fedora + GDB will be changed to just make a 'complaint' as GDB must not crash on invalid DWARF file.

Version-Release number of selected component (if applicable):
GNU gdb (GDB) 7.7.50.20140224-cvs
FAIL: gcc-gnat-4.8.2-7.fc20.x86_64
FAIL: gcc-gnat-4.8.2-14.fc21.x86_64

How reproducible:
Always

Steps to Reproduce:
git clone git://sourceware.org/git/binutils-gdb.git; cd binutils-gdb
./configure; make
./gdb/gdb -readnow /usr/bin/gnatbind
(Fedora GDB does not have this sanity check yet.)

Actual results:
Reading symbols from /usr/bin/gnatbind...Reading symbols from /usr/lib/debug/usr/bin/gnatbind.debug...expanding to full symbols...dwarf2read.c:8032: internal-error: process_die: Assertion `!die->in_process' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n) _

Expected results:
No error.

Additional info:
gcc-debuginfo-4.8.2-7.fc20.x86_64
readelf -wi /usr/lib/debug/usr/bin/gnatbind.debug

concreate instance tree (Out-of-Line Instance):
 <1><47562>: Abbrev Number: 62 (DW_TAG_subprogram)
    <47563>   DW_AT_abstract_origin: <0x46678>
    <47567>   DW_AT_low_pc      : 0x4517e0
    <4756f>   DW_AT_high_pc     : 0x261

abstract instance tree:
 <1><46678>: Abbrev Number: 48 (DW_TAG_subprogram)
    <46679>   DW_AT_name        : atree__copy_separate_tree
    <46684>   DW_AT_inline      : 1     (inlined)
 <2><46689>: Abbrev Number: 112 (DW_TAG_subprogram)
    <4668a>   DW_AT_name        : atree__copy_separate_tree__copy_entity
    <46695>   DW_AT_low_pc      : 0x450ca0
    <4669d>   DW_AT_high_pc     : 0x3c9
 - why are specific PCs in _abstract_ instance tree?
 - BTW the tree has 301 DIEs

Comment 1 Jan Kratochvil 2014-02-25 20:28:47 UTC
Reproduced with FSF GCC, I will file it upstream soon.