On Sun, 10 Jan 2010 00:31:56 +0100, Nenad Vukicevic wrote:
...
> <1><54>: Abbrev Number: 4 (DW_TAG_variable)
> <55>   DW_AT_name        : (indirect string, offset: 0x38): xxxxx
> <59>   DW_AT_decl_file   : 1
> <5a>   DW_AT_decl_line   : 1
> <5b>   DW_AT_type        : <0x4d>
> <5f>   DW_AT_external    : 1
> <60>   DW_AT_declaration : 1
> <1><61>: Abbrev Number: 5 (DW_TAG_variable)
> <62>   DW_AT_name        : (indirect string, offset: 0x38): xxxxx
> <66>   DW_AT_decl_file   : 1
> <67>   DW_AT_decl_line   : 1
> <68>   DW_AT_type        : <0x4d>
> <6c>   DW_AT_external    : 1
> <6d>   DW_AT_location    : 9 byte block: 3 0 0 0 0 0 0 0 0  (DW_OP_addr: 0)
> 
> in 4.4.1 and 4.5 releases.
> 
> Any idea if this is a correct dwarf? Or must be treated as a
> duplicate somehow?

It does not hurt much GDB - if the debugger ignores the second definition it
looks as a declaration of external symbol and it gets correctly looked up
through the ELF (not DWARF) .symtab symbol without using DW_AT_location.

PR 39524 mentions a special scope case which gets broken by it but in common
cases it works fine.


Regards,
Jan

Reply via email to