使用PTrace转储进程

时间:2018-02-18 14:10:06

标签: unix process tracing ptrace

我已经熟悉并使用strace成功转储了进程打开的文件。 话虽如此,strace性能导致我的软件性能下降,我想为我的软件使用c ++实现一个包装器,ptrace将收集和转储软件打开的文件。

我找到了如何附加和修改注册表的指南 - 但这对任何事情都没有帮助。

感谢帮助。

1 个答案:

答案 0 :(得分:0)

在Linux上,您可以访问/proc/<pid>/fd中所有打开文件的列表。这个目录只包含每个打开文件的一堆符号链接;使用标准目录迭代,您可以非常轻松地创建打开文件列表,例如在终端上:

ls -l /proc/$(pidof bash)/fd/

对于创建C / C ++包装器,您可以例如使用此相关问题中描述的技术:How to list files in a directory in a C program?