Thank you Ian!

Not sure yet if I found something useful related to the real process 
addresses/offsets, but at least the "bcc" sources have one 
"bcc_elf_get_text_scn_info()" that returns the address and offset of the 
".text" section.

On Tuesday, April 2, 2024 at 8:01:11 PM UTC+2 Ian Lance Taylor wrote:

> On Tue, Apr 2, 2024 at 2:35 AM 'TheDiveO' via golang-nuts
> <golan...@googlegroups.com> wrote:
> >
> > On Linux, given an arbitrary binary executable with symbol information 
> in the executable, how can I lookup an instruction pointer address to get 
> the corresponding symbol name?
> >
> > The binary (and its process) isn't a Go binary, but any arbitrary 
> executable. The stack unwinding has already been done, so I'm presented 
> with a list of instruction pointer addresses (return addresses) which I 
> need to convert to more useful symbol names.
> >
> > I've seen the stdlib's debug/elf package, but I lack the ELF knowledge 
> to press the elf package's knobs in the right order. Any examples of how to 
> use debug/elf, and is it even the right package to use in this case?
>
> debug/elf is the package to use. You'll want to call the Symbols
> method and look through the Symbols for one whose Value is <= the PC
> you want while Value+Size is > the PC you want.
>
> If you are looking at runtime PC's from a stack trace, be aware that
> on most systems these days programs are position-independent, so there
> will be an offset between the addresses in the binary and the
> addresses from the stack trace. I don't know offhand of a standard
> way to figure out that offset.
>
> Ian
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/7076c963-9cad-4c24-b00f-dcf9d88ede8fn%40googlegroups.com.

Reply via email to