On Fri, Dec 22, 2006 at 09:51:20AM +0530, Sandeep Joshi wrote:
> The problem is in the way GDB performs symbol lookup using PC. In
> function 'find_pc_sect_psymtab' gdb is not performing symbol lookup in
> all the objfiles. If it finds the PC in the range of any partial
> symtab, it tries to find the partial symtab that contains a symbol
> whose address is closest to the PC address in that object file only
> and returns that partial symbol table.
>
> Now if the user puts a breakpoint in the file loaded using
> add-symbol-file, then in function 'find_pc_sect_psymtab' the PC
> Address might in the range of some psymtab in the first objfile
> (vmlinux) and the best match in that file is returned. This is
> happening because the code range of partial symtabs often overlap,
> mostly if the functions are reordered.
That would slow this already slow function down even further. What
does your memory layout look like to create this problem?
--
Daniel Jacobowitz
CodeSourcery