This is the mail archive of the gdb@sourceware.org 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: gdb symbol lookup very slow


On Wed, 28 May 2014 09:59:02 +0200, Antonio Cavallo wrote:
> Hi,
> I'm having hard time debugging a (very large) C++ library under gdb (gdb
> 7.7.1, gcc 4.8, binutils 2.22).
> 
> The main issue is the time it takes to reach a breakpoint: gdb takes an
> insane amount of time (order of 2mins) vs vs2012 (a couple of seconds).
> 
> I've profiled gdb and the top functions called during the debugging are
> (more than 90% is spent in these):

Try to use gdb-add-index (gdb/contrib/gdb-add-index.sh or
/usr/bin/gdb-add-index on some systems) with gdb-7.7+.

That the index is present in a binary you can verify with:
$ readelf -WS /usr/lib/debug/bin/bash.debug|grep -w gdb_index
  [34] .gdb_index        PROGBITS        0000000000000000 21bc44 0252fa 00      0   0  1

Or with recent enough readelf even with:
	readelf --debug-dump=gdb_index /usr/lib/debug/bin/bash.debug
or with elfutils:
	eu-readelf --debug-dump=gdb_index /usr/lib/debug/bin/bash.debug

You should check you use .gdb_index version 8, older versions had various
issues and they can get ignored by recent GDBs.

There is also an unrelated GDB performance Bug which happens with binaries
optimized by 'dwz' but I do not think that is your described case.
	Bug 16405 - backtrace takes GBs and minutes with dwz -m
	https://sourceware.org/bugzilla/show_bug.cgi?id=16405



Jan


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