Multi-threaded dwarf parsing

Tom Tromey tom@tromey.com
Thu Feb 25 03:31:00 GMT 2016


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



More information about the Gdb mailing list