This is the mail archive of the
mailing list for the GDB project.
Re: setting breakpoints with C++ typedef names [was: Re: debug information]
- From: Paul Pogonyshev <pogonyshev at gmx dot net>
- To: Martin Sebor <sebor at roguewave dot com>
- Cc: Benjamin Kosnik <bkoz at redhat dot com>, libstdc++ at gcc dot gnu dot org, gdb at sourceware dot org
- Date: Fri, 24 Nov 2006 23:31:59 +0200
- Subject: Re: setting breakpoints with C++ typedef names [was: Re: debug information]
- References: <email@example.com> <firstname.lastname@example.org> <456762E8.email@example.com>
Martin Sebor wrote:
> Benjamin Kosnik wrote:
> >>But still function names include full type name: `b 'bar(basic_pod<int>)''.
> >>Not much of a problem in this case, but sometimes the full name is very
> > Oh. I finally understand you. Yes, this is a drag.
> > You want to be able to do:
> > (gdb) b bar(ipod)
> > instead of
> > (gdb) b bar(basic_pod<int>)
> This is especially troublesome when the real type is private to
> the implementation, as in, for example,
> void foo (std::map<T, U>::iterator);
> In order for a user to set a breakpoint on foo they need to know
> that the type of libstdc++'s map<T, U>::iterator is really called
> std::_Rb_tree_iterator<std::pair<const T, U> >
> (and something completely different when using a different
> implementation of the library).
Another important problem (and most important to me, since I set up
breakpoints using Tab-completion anyway) is that it makes backtraces
and similar stuff virtually unreadable.