ver_test_8_2.so

David Miller davem@davemloft.net
Tue May 20 22:44:00 GMT 2008


From: Ian Lance Taylor <iant@google.com>
Date: Tue, 20 May 2008 15:35:50 -0700

> The trick I use is extensive use of tab completion.  Using that, I
> wind up with this:
> 
> break '(anonymous namespace)::Target_sparc<32, true>::Scan::local(gold::General_options const&, gold::Symbol_table*, gold::Layout*, (anonymous namespace)::Target_sparc<32, true>*, gold::Sized_relobj<32, true>*, unsigned int, gold::Output_section*, elfcpp::Rela<32, true> const&, unsigned int, elfcpp::Sym<32, true> const&)'
> 
> I typed
> 
> break '(<tab> n<tab>::Ta<tab>sp<tab>32, true<tab>Scan::local<tab>'

Those completions don't work so well in emacs gud mode, which is where
I do most of my gdb sessions.  But typing things in explicitly works,
thanks.

> The hardest parts are: 1) you have to remember the space after the
> comma in "32, true", as omitting the space seems refers to the class
> generically rather than a method in the class; 2) some template
> functions include the return type in the mangled name, and then you
> have to type the return type first.
> 
> Another approach is to use rbreak.  But it's kind of tricky since it
> doesn't seem to match across the class name for some reason, and just
> matching the function names finds too many matches.  But "rbreak
> ^local$" will set a reasonable number of breakpoints including the one
> you want.

Is the anonymous namespace really worth all of this pain? :-)



More information about the Binutils mailing list