Disappearing return value
Mike Mason
mmlnx@us.ibm.com
Thu Sep 27 00:41:00 GMT 2007
I'm trying to probe the following function:
static int nfs_check_flags(int flags)
{
if ((flags & (O_APPEND | O_DIRECT)) == (O_APPEND | O_DIRECT))
return -EINVAL;
return 0;
}
with this script:
probe kernel.function("nfs_check_flags").return ?,
module("nfs").function("nfs_check_flags").return ?
{
ret = $return
}
and seeing these errors:
Pass 1: parsed user script and 37 library script(s) in 210usr/10sys/222real ms.
probe nfs_check_flags@?:-1 module=nfs reloc=.text section=.text pc=0x5ef19e0
semantic error: function has no return value: identifier '$return' at nfs2.stp:4:8
semantic error: probe_1060 with unresolved type: identifier 'ret' at nfs2.stp:4:2
Pass 2: analyzed script: 1 probe(s), 0 function(s), 0 embed(s), 0 global(s) in 250usr/100sys/348real ms.
Pass 2: analysis failed. Try again with more '-v' (verbose) options.
nfs_check_flags() looks like a candidate for inlining during optimization, but then I'd expect an error indicating no return probe could be set. Is this a known problem?
Mike
More information about the Systemtap
mailing list