inode-watch.stp (in systemtap tutorial) source code:
probe kernel.function ("vfs_write"),
kernel.function ("vfs_read")
{
dev_nr = $file->f_dentry->d_inode->i_sb->s_dev
inode_nr = $file->f_dentry->d_inode->i_ino
if (dev_nr == ($1 << 20 | $2) && inode_nr == $3)
printf ("%s(%d) %s 0x%x/%u\n",
execname(), pid(), probefunc(), dev_nr, inode_nr)
}
but have errors about $1,$2,$3, the information:
semantic error: unable to find local '1' near pc 0xc015b304:
identifier '$1' at inode-watch.stp:7:17
semantic error: unable to find local '2' near pc 0xc015b304:
identifier '$2' at inode-watch.stp:7:28
semantic error: unable to find local '3' near pc 0xc015b304:
identifier '$3' at inode-watch.stp:7:47
semantic error: due to failed target variable resolution
semantic error: no match for probe point
while: resolving probe point kernel.function("vfs_write")
semantic error: unable to find local '1' near pc 0xc015b096:
identifier '$1' at inode-watch.stp:7:17
semantic error: unable to find local '2' near pc 0xc015b096:
identifier '$2' at inode-watch.stp:7:28
semantic error: unable to find local '3' near pc 0xc015b096:
identifier '$3' at inode-watch.stp:7:47
semantic error: due to failed target variable resolution
semantic error: no match for probe point
while: resolving probe point kernel.function("vfs_read")
Pass 2: analysis failed. Try again with '-v' (verbose) option.
Why? Thank you.