This is the mail archive of the binutils@sourceware.cygnus.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]

bfd_find_nearest_line() breakage on Linux



It appears that bfd_find_nearest_line() is currently non-functional on
Linux - the problem is that the address is no longer written with
function symbols in the stabs section, and
_bfd_stab_section_find_nearest_line() can't deal with this.

This is easily reproduced with 'objdump -l' on a shared library.

I'm not quite sure when the breakage occured. It was, I think,
somewhere between binutils-2.9.1.0.23, contained in Red Hat 6.1, and
binutils-2.9.5.0.22 contained in Red Hat 6.2.

The same problem was fixed in gdb:

Tue Sep  7 14:06:22 1999  Kevin Buettner  <kevinb@cygnus.com>

	* config/i386/tm-linux.h (SOFUN_ADDRESS_MAYBE_MISSING): 
	Define.

Unfortunately, the bfd fix is not going to be that easy - it looks
like find_nearest_line() needs to read in the symbol table when it
hits such a function and find the address corresponding to the
functions name.

But doing the reverse map using the raw bfd functionality in 
an efficient manner looks rather nasty.

Since this problem makes my memprof utility rather unusable, I'll
probably have to tackle this myself if it is not otherwise fixed, but
I was hoping that someone more familiar with bfd would:

 - have looked into this already
 - have an idea about how it could be simply fixed

or:

 - would be interested in fixing it

Regards,
                                        Owen


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