using bfd, help please I am confused
Ian Lance Taylor
ian@airs.com
Fri Jun 20 18:07:00 GMT 2003
Robert Schweikert <Robert.Schweikert@abaqus.com> writes:
> My assumption is that I can somehow figure out the address of the
> function I am in, from here I'd like to figure out the function name.
> The approach is to use the
>
> void * __builtin_return_address (unsigned int level)
>
> kernel function to get the return address of the stack from there I
> should be able to figure out the function/method name/symbol.
That's a gcc builtin function, not a kernel function.
If you pass the address you get to addr2line, you should find the
function name, etc. Here's the documentation for addr2line:
http://sources.redhat.com/binutils/docs-2.12/binutils.info/addr2line.html#addr2line
If you want to get that information from within the program, without
using an external program, then you are going to have to link your
program against libbfd and call bfd_find_nearest_line(). Look at the
sources to addr2line for some hints.
Ian
More information about the Binutils
mailing list