This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Problems outputting a string


On Fri, Feb 28, 2003 at 01:13:19PM -0500, jacques wrote:
> woops, had the gdb output paste wrong, here it is(everything else was
> correct):
> 
> 
> bash-2.05b$ gdb tetete.o
> GNU gdb 5.3
> Copyright 2002 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you are
> welcome to change it and/or distribute copies of it under certain
> conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB. Type "show warranty" for details.
> This GDB was configured as "i686-pc-linux-gnu"...
> (gdb) b 7
> Breakpoint 1 at 0x80486ad: file /home/palomer/tetete.cpp, line 7.
> (gdb) r
> Starting program: /home/palomer/tetete.o
> 
> Breakpoint 1, foo() () at /home/palomer/tetete.cpp:7
> 7 return ret;
> (gdb) p ret
> $1 = {static npos = 4294967295,
> _M_dataplus = {<allocator<char>> = {<No data fields>},
> _M_p = 0xbffff7a0
> "T\233\004\ba"+$ at ?÷y"?\035\205\004\bT_\022 at a"+$ at ?÷y"?d\n\023 at \
> 001"}, static _S_empty_rep_storage = {0, 0, 0, 0}}

The short version: If you get a CVS snapshot of GDB (see
http://sources.redhat.com/gdb/ for how to get one) this will be fixed.

The long version, for the curious:

The debug info for ret says:

 <2><bdba>: Abbrev Number: 107 (DW_TAG_variable)
     DW_AT_name        : ret    
     DW_AT_decl_file   : 1      
     DW_AT_decl_line   : 5      
     DW_AT_type        : <7759> 
     DW_AT_location    : 3 byte block: 91 8 6   (DW_OP_fbreg: 8; DW_OP_deref; )

Note the DW_OP_deref at the end.  decode_locdesc et al. support
arguments which are frame-base relative and passed by reference, but
not variables which are stored by reference.  Oops.

However, LOC_COMPUTED handles this perfectly gracefully.  It would make
a great test-case; I'll add it later.

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]