This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: Listing probe alias resolution failures
patm@pdx.edu wrote:
I was thinking the java program is pretty obscure, so here is a much
simpler way to determine some of the probe aliases that are failing, in
this case lets look at syscalls.stp:
$ grep syscall.*= /usr/share/systemtap/tapset/syscalls.stp | \
awk '{ print $1 " " $2 "{}" }' | \
stap -p2 -u -
And either a list of failed probe alias resolutions will be printed to
stderr, or a list of probe aliases, variables, and functions will be
printed out to stdout.
On my FC6.93 system, here are the errors the above outputs:
semantic error: no match for probe point while resolving probe point
syscall.compat_getitimer
semantic error: no match for probe point while resolving probe point
syscall.compat_getitimer.return
semantic error: no match for probe point while resolving probe point
syscall.get_mempolicy
semantic error: no match for probe point while resolving probe point
syscall.get_mempolicy.return
semantic error: no match for probe point while resolving probe point
syscall.mbind
semantic error: no match for probe point while resolving probe point
syscall.mbind.return
semantic error: no match for probe point while resolving probe point
syscall.mmap
semantic error: no match for probe point while resolving probe point
syscall.mmap.return
Let's look at the first one for a sec. The system call
"compat_getitimer" doesn't exist on my x86 FC6.93 system. It does exist
on a x86_64 RHEL4 system I have access to.
So, how does this hurt me? The below 2 stap commands still work:
# stap -p2 -u -e 'probe syscall.* {}'
# stap -p2 -u -e 'probe syscall.*getitimer {}'
The only thing that doesn't work is:
# stap -p2 -u -e 'probe syscall.compat_getitimer {}'
So, the only error I get is when I explicitly list the system call that
doesn't exist on my current arch and kernel. I could see where if you
were writing a script targeting either multiple architectures or
multiple kernel versions that might bother you. However, the solution
is easy - make that probe optional:
# stap -p2 -u -e 'probe syscall.compat_getitimer ? { }'
--
David Smith
dsmith@redhat.com
Red Hat
http://www.redhat.com
256.217.0141 (direct)
256.837.0057 (fax)