在Linux平台上捕获文件系统系统调用

时间:2013-06-04 17:02:21

标签: linux filesystems system-calls inotify ptrace

我希望详细捕获文件系统上的所有系统调用。例如。对于write系统调用,我想记录目标文件,写入的字节数和写入的偏移量。

目前,我想用inotify实现这样的记录器。但是,它不能提供这样的细节。例如。对于write,它不提供写入的字节数和偏移量。 另一种方法是使用保险丝上实施的bbfs。但是,它会在记录系统调用时引入开销,并将用户操作延迟到一些不可容忍的程度。

是否有一些库可以捕获文件系统上的系统调用,就像记录进程发出的所有系统调用时的ptrace一样?

2 个答案:

答案 0 :(得分:1)

如何使用包装器编写自己的分析工具?见GCC -wrapper

  

<强> -wrapper
  在包装器程序下调用所有子命令。包装程序的名称及其参数将以逗号分隔列表的形式传递。

答案 1 :(得分:1)

在Linux中有许多选项可用于跟踪。但这听起来像一个非常简单的案例。您是否仅使用strace实用程序进行了调查?它有很多可以控制跟踪粒度的选项,可以将参数记录到几乎所有的系统调用(如果你想要的话包括缓冲区内容),并且存在并且基本上可以在任何地方工作而无需安装软件包之外的任何设置。