This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]