小编Vla*_*hin的帖子

无法使用 strace 捕获文件创建

当我make在构建目录中运行以下命令时,它几乎是空的(有问题的文件绝对不存在)

strace -f -e trace=execve,vfork,open,creat -s 1024 make <target>

完成后,文件就完全存在了。因此,它必须make是由其子进程(或它们的子进程的子进程等)或其中一个子进程创建的。

但是,当我strace为文件名或 forcreat我查找日志时,找不到负责创建此文件的系统调用。

我错过了什么?我应该监视其他系统调用吗?


编辑:

事实证明,错误出在我的 strace 命令和我的 grepping 中。所有的答案都很有帮助,谢谢大家的时间。

我实际上没有传达该文件在子目录中的信息,并且我正在使用文件名和子目录的名称进行搜索。但是由于 strace 不提供有关当前工作目录的信息,因此这种方法效果不佳(我最终通过 stracechdirrename调用来获得所需的效果)。

因此,PaulHaldane 的第一个建议是正确且切中要害的。以及 larsks 的回答,其中他实际上已经猜到了文件是如何创建的。

linux files strace

5
推荐指数
1
解决办法
2708
查看次数

标签 统计

files ×1

linux ×1

strace ×1