This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Failures with exelib.exp testcase (was Re: minutes 2010-08-19)


> > I'm attaching the output of eu-readelf to this mail.

You always need -S output to make full sense of -s output.

> > Symbol table [37] '.symtab' contains 75 entries:
> > 56 local symbols  String table: [38] '.strtab'
> >  Num:            Value   Size Type    Bind   Vis          Ndx Name
> > [...]
> >    61: 0000000010010a70     64 FUNC    GLOBAL DEFAULT       22 print_hw
> 
> So, that does match our _stp_symbol entry:
>    { 0x10010a70, "print_hw" },
> and is also totally not what we want/need to resolve the address to
> the symbol name. I am not sure what is going on here.

I suspect that ...a70 is the fptr address rather than the code address.  I
think that's what ppc64 has in st_value for STT_FUNC symbols.  AIUI, the
word at address 0x10010a70 (i.e. the word in the file section+offset
corresponding to that virtual address) will hold the actual PC address.
I don't think there is any way other than looking at that stored word
to retrieve the real PC address for the function.

Thanks,
Roland


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