The attached test case compiled thus: g++ -g class.c class2.c -o class

produces the following debuginfo:

 <0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
    < c>   DW_AT_producer    : (indirect string, offset: 0x36): GNU C++ 4.3.0
20080428 (Red Hat 4.3.0-8)        
    <10>   DW_AT_language    : 4        (C++)
    <11>   DW_AT_name        : (indirect string, offset: 0x0): class.c  
    <15>   DW_AT_comp_dir    : (indirect string, offset: 0x19):
/notnfs/swagiaal/tests/class    
    <19>   DW_AT_low_pc      : 0x40055c 
    <21>   DW_AT_high_pc     : 0x400568 
    <29>   DW_AT_stmt_list   : 0x0      
 <1><2d>: Abbrev Number: 2 (DW_TAG_class_type)
    <2e>   DW_AT_name        : A        
    <30>   DW_AT_byte_size   : 1        
    <31>   DW_AT_decl_file   : 2        
    <32>   DW_AT_decl_line   : 4        
    <33>   DW_AT_sibling     : <0x49>   
 <2><37>: Abbrev Number: 3 (DW_TAG_variable)
    <38>   DW_AT_name        : (indirect string, offset: 0x5f): elsewhere       
    <3c>   DW_AT_decl_file   : 2        
    <3d>   DW_AT_decl_line   : 6        
    <3e>   DW_AT_MIPS_linkage_name: (indirect string, offset: 0x8):
_ZN1A9elsewhereE    
    <42>   DW_AT_type        : <0x49>   
    <46>   DW_AT_external    : 1        
    <47>   DW_AT_declaration : 1        
[...]
 <1><86>: Abbrev Number: 3 (DW_TAG_variable)
    <87>   DW_AT_name        : (indirect string, offset: 0x5f): elsewhere       
    <8b>   DW_AT_decl_file   : 2        
    <8c>   DW_AT_decl_line   : 6        
    <8d>   DW_AT_MIPS_linkage_name: (indirect string, offset: 0x8):
_ZN1A9elsewhereE    
    <91>   DW_AT_type        : <0x49>   
    <95>   DW_AT_external    : 1        
    <96>   DW_AT_declaration : 1        

[...]


 <0><a3>: Abbrev Number: 1 (DW_TAG_compile_unit)
    <a4>   DW_AT_producer    : (indirect string, offset: 0x36): GNU C++ 4.3.0
20080428 (Red Hat 4.3.0-8)        
    <a8>   DW_AT_language    : 4        (C++)
    <a9>   DW_AT_name        : (indirect string, offset: 0x6e): class2.c        
    <ad>   DW_AT_comp_dir    : (indirect string, offset: 0x19):
/notnfs/swagiaal/tests/class    
    <b1>   DW_AT_low_pc      : 0x400568 
    <b9>   DW_AT_high_pc     : 0x400568 
    <c1>   DW_AT_stmt_list   : 0x46     
 <1><c5>: Abbrev Number: 2 (DW_TAG_class_type)
    <c6>   DW_AT_name        : A        
    <c8>   DW_AT_byte_size   : 1        
    <c9>   DW_AT_decl_file   : 1        
    <ca>   DW_AT_decl_line   : 4        
    <cb>   DW_AT_sibling     : <0xe1>   
 <2><cf>: Abbrev Number: 3 (DW_TAG_variable)
    <d0>   DW_AT_name        : (indirect string, offset: 0x5f): elsewhere       
    <d4>   DW_AT_decl_file   : 1        
    <d5>   DW_AT_decl_line   : 6        
    <d6>   DW_AT_MIPS_linkage_name: (indirect string, offset: 0x8):
_ZN1A9elsewhereE    
    <da>   DW_AT_type        : <0xe1>   
    <de>   DW_AT_external    : 1        
    <df>   DW_AT_declaration : 1        
[...]
 <1><ed>: Abbrev Number: 6 (DW_TAG_variable)
    <ee>   DW_AT_specification: <0xcf>  
    <f2>   DW_AT_decl_file   : 2        
    <f3>   DW_AT_decl_line   : 4        
    <f4>   DW_AT_location    : 9 byte block: 3 68 6 40 0 0 0 0 0       
(DW_OP_addr: 400668)
[...]
 The File Name Table:
  Entry Dir     Time    Size    Name
  1     0       0       0       class.c
  2     0       0       0       class.h
[...]
 The File Name Table:
  Entry Dir     Time    Size    Name
  1     0       0       0       class.h
  2     0       0       0       class2.c

As can be seen from the debug info there is an extra die (0x86).
This die is misleading to the debugger. In that compile unit there
are two die's representing declarations of the variable 'elsewhere'
0x37 and 0x86. The second one is in the incorrect scope and has no
reference to the correct die.

Please advise.

Thanks


-- 
           Summary: Extranious DW_TAG_variable tag
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: debug
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: swagiaal at redhat dot com


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

Reply via email to