This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: addr2line seems slow
Patrick Doyle <doylep@eecg.toronto.edu> writes:
> On 29 Jul 2001, Ian Lance Taylor wrote:
>
> > The behaviour of bfd_find_nearest_line differs from different object
> > file formats. You didn't mention which format you were using.
> >
> > For some object file formats, bfd_find_nearest_line caches the values.
> > For some, it sorts the data and does a lookup for each call. For
> > others, it does a linear search through the debugging information.
>
> I'm sorry, it's the ELF x86 format. Do you know what approach it uses for
> that format?
Actually, I forgot to mention another variable. It depends upon what
sort of debugging information you are using. I think that gcc
normally generates stabs for ELF/x86, but I haven't checked gcc 3.0.
If you compile with the -gdwarf-2 option, you will get DWARF
debugging.
If you are using stabs, bfd_find_nearest_line builds a table mapping
addresses to stabs entries. It then does a binary search each time it
is called. The relevant code is _bfd_stab_section_find_nearest_line
in bfd/syms.c.
Ian