【发布时间】:2010-10-26 06:38:07
【问题描述】:
我希望能够监控某个进程进行的某些系统调用,主要是文件 I/O 调用。在 Linux 上,我可能可以使用带有合适参数的strace,但如何在 Windows 上做到这一点?
我主要对运行一个进程并找出它已读取和写入的文件感兴趣。
我想从另一个进程以编程方式执行此操作。我知道Process Monitor,但我想以可以导入另一个程序进行进一步分析的形式接收数据。
如果我进一步缩小我的要求,那么能够监控对 CreateFile() 的调用可能就足够了。我真的只对打开哪些文件感兴趣,以及它们是打开读/写还是只是读。我没有真正说明的另一个要求是 速度 相当重要。我打算这样做是为了编译一个 C++ 文件,然后提取一个生成 20 MB 日志文件的完整 GUI,这会产生令人望而却步的开销。
如果它不需要管理权限也很好。
【问题讨论】:
-
有趣。 Windows 中没有类似于 linux ptrace syscall 的东西吗?所有的答案都是关于使用其他程序,但使用 ptrace() 之类的程序你可以自己做。
-
如果您对不同的方法感兴趣,我询问了一个相当于 ptrace 的窗口:stackoverflow.com/questions/865106/…
标签: windows process cross-platform