------- Comment #1 from pinskia at gmail dot com  2008-09-19 18:11 -------
Subject: Re:   New: g++ should emit different debug info for variable's type



Sent from my iPhone

On Sep 19, 2008, at 10:58 AM, "tromey at gcc dot gnu dot org"
<[EMAIL PROTECTED] 
 > wrote:

> Consider this code:
>
> #include <string>
> std::string s;
>
> I compiled this with -g and examined the resulting dwarf.
> 's' is represented as:
>
> <1><24e8>: Abbrev Number: 63 (DW_TAG_variable)
>  <24e9>     DW_AT_name        : s
>  <24eb>     DW_AT_decl_file   : 1
>  <24ec>     DW_AT_decl_line   : 3
>  <24ed>     DW_AT_type        : <24dd>
>  <24f1>     DW_AT_external    : 1
>  <24f2>     DW_AT_location    : 5 byte block: 3 0 0 0 0         
> (DW_OP_addr: 0)
>
> The type of s is:
>
> <1><24dd>: Abbrev Number: 3 (DW_TAG_typedef)
>  <24de>     DW_AT_name        : (indirect string, offset: 0xf4e):  
> string
>  <24e2>     DW_AT_decl_file   : 17
>  <24e3>     DW_AT_decl_line   : 61
>  <24e4>     DW_AT_type        : <f51>
>
> However, the declared type is not 'string', it is 'std::string'.


No it is string inside the namespace of std.
This typedef should be a sibling of a namespace. If it is, then it is  
the job of the debugger to show the correct thing.

>
> I think it would be better to always emit the declared type
> as it appears in the source.  That way, "whatis s" in gdb will give an
> answer which is expected by the user, and which is a valid type name
> at the point of declaration.
>
>
> -- 
>           Summary: g++ should emit different debug info for  
> variable's type
>           Product: gcc
>           Version: 4.4.0
>            Status: UNCONFIRMED
>          Severity: normal
>          Priority: P3
>         Component: c++
>        AssignedTo: unassigned at gcc dot gnu dot org
>        ReportedBy: tromey at gcc dot gnu dot org
>
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37590
>


-- 


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

Reply via email to