GDB using a lot of CPU time and writing a lot to disk on startup

Nick Savoiu
2009-04-20T22:40:28Z

I'm using GDB 6.8 (x86_64-unknown-linux-gnu) from within KDevelop 3.5.4. I've noticed that for some projects GDB uses 1 minute of CPU time and seems to do a lot of disk writing during this time.

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3439 nsavoiu 16 0 600m 589m 2536 S 0 15.2 1:13.64 gdb

I can't really figure out why this is happening and could use some help tracking it down.

I used pstack every second until the debugging actually starts and here are all the unique #0 locations in the pstack output.

#0 0x0000000000446d16 in msymbol_hash_iw ()
#0 0x0000000000446f97 in lookup_minimal_symbol ()
#0 0x00000000004bfda0 in symbol_natural_name ()
#0 0x00000000004bffe4 in find_pc_sect_psymtab ()
#0 0x00000000004c0118 in find_pc_sect_psymbol ()
#0 0x00000000004fd755 in bcache_data ()
#0 0x000000000050d11a in dwarf2_lookup_abbrev ()
#0 0x0000000000610c67 in d_print_comp ()
#0 0x00000035aae28250 in __ctype_b_loc () from /lib64/tls/libc.so.6
#0 0x00000035aae68ced in _int_free () from /lib64/tls/libc.so.6
#0 0x00000035aaeb94a5 in _xstat () from /lib64/tls/libc.so.6
#0 0x00000035aaeb9545 in _lxstat () from /lib64/tls/libc.so.6
#0 0x00000035aaeb9832 in __open_nocancel () from /lib64/tls/libc.so.6
#0 0x00000035aaebe18f in poll () from /lib64/tls/libc.so.6

Of 461 calls 418 are:

#0 0x00000035aaeb94a5 in _xstat () from /lib64/tls/libc.so.6

Thanks,
Nick