如何使用 SystemTap 在 VFS 上探测文件打开和关闭
How can I probe file open and close at VFS using SystemTap
我看到了使用 probe syscall.open.return { }
的 SystemTap 脚本示例
但是有一些应用程序不调用系统调用
那么我如何探测在 VFS
打开的文件
如果您知道要探测 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)
等
我看到了使用 probe syscall.open.return { }
的 SystemTap 脚本示例
但是有一些应用程序不调用系统调用
那么我如何探测在 VFS
如果您知道要探测 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)
等