------- Additional Comments From jakub at gcc dot gnu dot org 2005-04-07 12:13 ------- int *v;
int * foo () { extern int *v; return v; } The section .debug_info contains: Compilation Unit @ 0: Length: 208 Version: 2 Abbrev Offset: 0 Pointer Size: 8 <0><b>: Abbrev Number: 1 (DW_TAG_compile_unit) DW_AT_stmt_list : 0 DW_AT_high_pc : 0xd DW_AT_low_pc : 0 DW_AT_producer : GNU C++ 4.1.0 20050405 (experimental) DW_AT_language : 4 (C++) DW_AT_name : /tmp/23.ii <1><52>: Abbrev Number: 2 (DW_TAG_subprogram) DW_AT_sibling : <9a> DW_AT_external : 1 DW_AT_name : foo DW_AT_decl_file : 1 DW_AT_decl_line : 4 DW_AT_MIPS_linkage_name: _Z3foov DW_AT_type : <9a> DW_AT_low_pc : 0 DW_AT_high_pc : 0xd DW_AT_frame_base : 1 byte block: 56 (DW_OP_reg6) <2><7c>: Abbrev Number: 3 (DW_TAG_lexical_block) DW_AT_low_pc : 0x4 DW_AT_high_pc : 0xb <3><8d>: Abbrev Number: 4 (DW_TAG_variable) DW_AT_name : v DW_AT_decl_file : 1 DW_AT_decl_line : 6 DW_AT_type : <9a> DW_AT_external : 1 DW_AT_declaration : 1 <1><9a>: Abbrev Number: 5 (DW_TAG_pointer_type) DW_AT_byte_size : 8 DW_AT_type : <a0> <1><a0>: Abbrev Number: 6 (DW_TAG_base_type) DW_AT_name : int DW_AT_byte_size : 4 DW_AT_encoding : 5 (signed) <1><a7>: Abbrev Number: 7 (DW_TAG_namespace) DW_AT_sibling : <c4> DW_AT_name : :: DW_AT_decl_file : 2 DW_AT_decl_line : 0 <2><b1>: Abbrev Number: 4 (DW_TAG_variable) DW_AT_name : v DW_AT_decl_file : 1 DW_AT_decl_line : 6 DW_AT_type : <9a> DW_AT_external : 1 DW_AT_declaration : 1 <2><bc>: Abbrev Number: 8 (DW_TAG_variable) DW_AT_specification: <8d> DW_AT_decl_line : 1 DW_AT_declaration : 1 <1><c4>: Abbrev Number: 9 (DW_TAG_variable) DW_AT_specification: <bc> DW_AT_location : 9 byte block: 3 0 0 0 0 0 0 0 0 (DW_OP_addr: 0) The gdb ICE happens when trying too lookup the 0x8d specification. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20805