This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: [BUG] syscall.unlink no longer works after upgrading kernel to 3.7.3
- From: Mark Wielaard <mjw at redhat dot com>
- To: Zheng Da <zhengda1936 at gmail dot com>
- Cc: Josh Stone <jistone at redhat dot com>, agentzh <agentzh at gmail dot com>, "systemtap at sourceware dot org" <systemtap at sourceware dot org>
- Date: Tue, 28 May 2013 21:14:49 +0200
- Subject: Re: [BUG] syscall.unlink no longer works after upgrading kernel to 3.7.3
- References: <CAB4Tn6PdW3GOa09z_tfjQs=F+7XLOqMr5+c5GourX5e0v8FMeQ at mail dot gmail dot com> <1360054656 dot 3837 dot 13 dot camel at bordewijk dot wildebeest dot org> <51114188 dot 60400 at redhat dot com> <CAFLer83DQhCQg7Y3NKR0EUYePzp+fETDTeYEthUXKarAySM0_g at mail dot gmail dot com>
On Tue, May 28, 2013 at 02:52:48PM -0400, Zheng Da wrote:
> I think I got a very similar error in Ubuntu:
> semantic error: not accessible at this address [man error::dwarf]
> (0xffffffff81480e80, dieoffset: 0x43d730b): identifier '$sdev' at
> :10:6
> source: if ($sdev->host->host_no == 9 && $sdev->id == 1) {
> ^
> I use Linux v3.8.12, and gcc version is 4.6.3.
> Is there any better fix for this problem? I checked the workaround for
> perf, but I don't know how to apply it to systemtap.
I believe the patch/commit you are looking for is:
commit 45b02a36c31d857a0a7d17fc86e1b4e9d15df680
Author: Frank Ch. Eigler <fche@redhat.com>
Date: Tue Feb 12 21:32:30 2013 -0500
PR15123: work around broken gcc debuginfo for -mfentry functions
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54793 interferes with the
calm zen-like state of probing function parameters in programs built
with CFLAGS=-mfentry, due to a dwarf location-list problem. This
patch adds a heuristic function dwflpp::pr15123_retry_addr() that
offers callers a post-mfentry-address alternative for locating
variables. Will they use it, or not? Join us next week, as our
heroes encounter ... angry mr. dwarf, five steps away.
* dwflpp.cxx (pr15123_retry_addr): New function.
(translate_location): Call it, in order to enable $var
and $$parms resolution.
* tapsets.cxx (saveargs): Call it, in order to enable
stap -L <probe> listings.
http://sourceware.org/git/?p=systemtap.git;a=patch;h=45b02a36c31d857a0a7d17fc86e1b4e9d15df680
Cheers,
Mark