[Bug debug/18112] New: -feliminate-dwarf2-dups produces debug entries in wrong scope

nikolay at etnus dot com gcc-bugzilla@gcc.gnu.org
Fri Oct 22 14:25:00 GMT 2004


Consider this program, compiled with  -feliminate-dwarf2-dups 
----------------------------
#include <iostream>
#include <string>

using namespace std;

int main(){
  string s1 = "Hello";
}
-----------------------------
readelf -wi produces: 
<0><103c>: Abbrev Number: 91 (DW_TAG_compile_unit)
     DW_AT_stmt_list   : 712	
     DW_AT_producer    : (indirect string, offset: 0xff3): GNU C++ 3.4.1	
     DW_AT_language    : 4	(C++)
     DW_AT_name        : ../../src/tx_ttf_string.cxx	
     DW_AT_comp_dir    :
/home/nikolay/builds/xander-linux-x86/totalview/debugger/src/tests/bld/gcc_3.4.1_32
.........................
 <1><2153>: Abbrev Number: 119 (DW_TAG_subprogram)
     DW_AT_sibling     : <2186>	
     DW_AT_external    : 1	
     DW_AT_name        : main	
     DW_AT_decl_file   : 54	
     DW_AT_decl_line   : 8	
     DW_AT_type        : <10b6>	
     DW_AT_low_pc      : 0x8048970 134515056	
     DW_AT_high_pc     : 0x80489f3 134515187	
     DW_AT_frame_base  : 1 byte block: 55 	(DW_OP_reg5; )
 <2><216e>: Abbrev Number: 116 (DW_TAG_lexical_block)
     DW_AT_low_pc      : 0x804898d 134515085	
     DW_AT_high_pc     : 0x80489e9 134515177	
 <3><2177>: Abbrev Number: 120 (DW_TAG_variable)
     DW_AT_name        : s1	
     DW_AT_decl_file   : 54	
     DW_AT_decl_line   : 9	
     DW_AT_type        : <#a92e>	
     DW_AT_location    : 2 byte block: 91 68 	(DW_OP_fbreg: -24; )

Notice, that variable s1 is of type <#a92e>,
The problem is, that type <#a92e> is defined as typedef in different CU 
(which is fine) and inside the scope of some "arbitrary" structure (which is
wrong). 
Effectively type of s1 is not visible (out of scope) in main and is reported as
<void> by the debugger.

-- 
           Summary:  -feliminate-dwarf2-dups produces debug entries in wrong
                    scope
           Product: gcc
           Version: 3.4.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: debug
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: nikolay at etnus dot com
                CC: gcc-bugs at gcc dot gnu dot org


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



More information about the Gcc-bugs mailing list