This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: Multi-threaded dwarf parsing
- From: Tom Tromey <tom at tromey dot com>
- To: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- Cc: Simon Marchi <simon dot marchi at polymtl dot ca>, Tom Tromey <tom at tromey dot com>, Pedro Alves <palves at redhat dot com>, gdb at sourceware dot org
- Date: Wed, 24 Feb 2016 20:20:23 -0700
- Subject: Re: Multi-threaded dwarf parsing
- Authentication-results: sourceware.org; auth=none
- References: <2c38d5c574de28faa9fc94fe4ed17d45 at simark dot ca> <56CD8EC0 dot 3010304 at redhat dot com> <87lh6a6s8s dot fsf at tromey dot com> <c4dc7b1f07fe11da024684ec2de47a7e at simark dot ca> <20160224202519 dot GA10251 at host1 dot jankratochvil dot net>
Jan> With .gdb_index GDB still has startup performance problems during
Jan> full CU expansions, that is struct symtab and struct symbol.
My branch "lazily-read-function-bodies" addressed this issue. It
changed CU expansion to skip reading function bodies until needed. This
was good for a decent speedup; my notes say ~40%. I didn't finish this
branch, though -- it still needed a bit of work to expand a function
when a by-address lookup was done.
It's possible, but harder, to go even farther than this -- that is,
unify symtabs and psymtabs and make CU expansion completely lazy. At
one point I had a rather complicated plan for this.
For what it's worth, in my current debugging, I do notice psymtab
reading, but I never notice CU expansion. I'm not sure if I'm just
lucky or if it's because the CU expansion problem is exacerbated by dwz,
which I'm of course not using during development.
Tom