首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >监视Windows进程执行的某些系统调用

监视Windows进程执行的某些系统调用
EN

Stack Overflow用户
提问于 2009-05-14 18:06:13
回答 6查看 63.6K关注 0票数 49

我希望能够监视进程进行的某些系统调用,主要是文件I/O调用。在Linux上,我可能可以使用绞合使用合适的参数,但是如何在Windows上做到这一点呢?

我主要感兴趣的是运行一个进程,并找出它所读和写的文件。

我想通过另一个进程以编程的方式来完成这个任务。我知道过程监视器,但我想以一种可以导入到另一个程序以进一步分析的形式接收数据。

如果我进一步缩小需求范围,可能就足以监视对CreateFile()的调用。我真正感兴趣的只是打开了哪些文件,以及它们是为读/写打开的,还是只是用于读取的。另一个我没有说过的要求是,速度是相当重要的;我正计划这样做,比如编译C++文件,以及提取一个生成20 MB日志文件的完整GUI,这将产生令人望而却步的开销。

如果它不需要管理特权,那也是很好的。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-05-14 18:09:56

Windows上有几个选项。

Windows性能工具包可用于跟踪各种系统事件,包括文件I/O,并包括处理和查看这些事件的工具。您可以使用xperf开始跟踪不同类型的事件,并将其保存到ETL文件中,然后使用相同的工具处理或查看该文件。

来自过程监视器Sysinternals是另一个非常容易使用的选项,它使您能够快速查看系统上任何进程的所有文件和注册表访问。你也可以以自动化方式运行流程监视器

如果您想完全以编程方式完成此操作,则可以使用ETW函数(StartTrace、EnableTrace等)。若要抓取文件I/O事件并保存到ETL文件,请执行以下操作。示例代码这里

票数 34
EN

Stack Overflow用户

发布于 2009-05-14 18:14:51

在Windows上,您可以使用过程监视器监视进程活动(I/O和注册表)。如果你真的不想知道系统调用的话,我想这符合你的需要。

您可以使用winapioverride32来监视API调用。

票数 10
EN

Stack Overflow用户

发布于 2013-07-03 15:01:04

API监视器由Rohitab是非常好的系统调用。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/864839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档