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]

[Bug tapsets/16541] nfsd tapset has errors


https://sourceware.org/bugzilla/show_bug.cgi?id=16541

--- Comment #1 from David Smith <dsmith at redhat dot com> ---
(In reply to David Smith from comment #0)
> 1) nfsd.close error accessing $filp.
> 
> ====
> semantic error: not accessible at this address [man error::dwarf] (0x18707,
> dieoffset: 0x5a932): identifier '$filp' at :1100:29
>         source: 	filename = __file_filename($filp)
> ====
> 
> The first thing to do is see what parameters (if any) stap can see for that
> function:
> 
> # stap -L 'module("nfsd").function("nfsd_close").*'
> module("nfsd").function("nfsd_close@fs/nfsd/vfs.c:856").call $filp:struct
> file*
> module("nfsd").function("nfsd_close@fs/nfsd/vfs.c:856").exported
> $filp:struct file*
> module("nfsd").function("nfsd_close@fs/nfsd/vfs.c:856").inline
> module("nfsd").function("nfsd_close@fs/nfsd/vfs.c:856").return $filp:struct
> file*
> 
> So, stap can see $filp except for the inlined version, which isn't too
> surprising since gcc typically generates poor debuginfo for inlined
> functions.
> 
> The solution here is to use the '.call' version on the probe points. This
> will ensure that stap can find $filp and 'nfsd.close' probe hits will match
> more closely with 'nfsd.close.return' probe hits.

Another solution here (and perhaps a better one) would be to not return the
filename if we can't find it, with something like the following:

   filename = @choose_defined($filp, "")

-- 
You are receiving this mail because:
You are the assignee for the bug.

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