This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: regression of probefunc()
- From: Mark Wielaard <mjw at redhat dot com>
- To: wenji dot huang at oracle dot com
- Cc: SystemTAP <systemtap at sources dot redhat dot com>
- Date: Tue, 24 Feb 2009 11:09:53 +0100
- Subject: Re: regression of probefunc()
- References: <49A3AAB1.8000607@oracle.com>
Hi Wenji,
On Tue, 2009-02-24 at 16:07 +0800, Wenji Huang wrote:
> Since commit 7774095b25424019098226eaa7c1148ff24b800b("Adjust ET_DYN
> symbol addresses against module base"), there is one regression about
> probefunc() which results in failure of probefunc.exp.
>
> $cat /proc/kallsyms |grep -w sys_open
> c015a388 T sys_open
> $./stap -g -e 'probe kernel.statement(0xc015a388).absolute{
> printf("%s",probefunc()) exit() }'
> 0xc015a389
Sorry about that. This was a clash between:
30d163: extra_offset for kernel symbols with
dwfl_module_relocate_address.
and
777409: Adjust ET_DYN symbol addresses against module base
The second should have also adjusted for the extra_offset case.
Done as follows now, so that this also works again on elfutils < 0.138:
commit cfba34fccd99924a47622c5082706867f0a34b12
Author: Mark Wielaard <mjw@redhat.com>
Date: Tue Feb 24 11:04:00 2009 +0100
Adjust extra_offset address against module base.
* translate.cxx (dump_unwindsyms): Adjust extra_offset always
against module base as workaround for buggy elfutils < 0.138.
Mark