0

我看到了使用 SystemTap 脚本的示例probe syscall.open.return { } 但是有一些应用程序没有调用 systemcall 那么我如何探测在 VFS 上打开的文件

4

1 回答 1

2

如果您知道要探测 vfs 开放操作,请执行以下操作:

# stap -L 'kernel.function("vfs_*")'
[...]
kernel.function("vfs_open@fs/open.c:862") $path:struct path const* $filp:struct file* $cred:struct cred const*
[...]

# stap -e 'probe kernel.function("vfs_open") { /* ... */ }'

其中...可能包括打印上下文变量、调用进程的标识、回溯task_dentry_path(task_current(), $path->dentry, $path->mnt)等。

于 2015-08-27T18:29:07.827 回答