Dear gdb gurus,
I found the bug in gdb-5.0.
In the routine (symtab.c) find_pc_sect_psymtab, the short-circuit logic can
prevent the continued traversal of the ALL_PSYMTABS, causing nested shared
objects to be masked by the parent shared object. (The nested shared
objects can have their pc as a subrange of the parent shared objects
textlow/texthigh range.)
I added an extra local variable...
register struct partical_symtab *best = NULL;
And changed "return (pst);" fallback to...
/* Best we've got so far, but it's still unimpressive. */
/* Maybe a more likely match further down the chain. */
best = pst;
And changd the final "return (NULL);" to...
return (best);
Problem solved in 4 days of scrutinizing gdb code. Three line change.
*whew*
Sincerely,
John Love-Jensen
Adobe Systems Incorporated
PS: SunOS 5.8, gcc 2.95.2, gdb 5.0.
_______________________________________________
Bug-gdb mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-gdb