在进程监视器中的托管堆栈

8

在Process Monitor中,是否可以查看给定进程的文件访问事件的托管堆栈跟踪?如果不行,有其他方法可以完成此任务吗?


进程监视器是一个非托管工具,记录本地堆栈跟踪。您需要使用托管调试器才能查看由JIT编译的代码生成的堆栈帧。防止JIT生成代码是可能的,可以在程序上使用ngen.exe /debug。不确定这是否会使ProcMon更智能,可能会。 - Hans Passant
1个回答

9

很遗憾,Process Monitor还不支持托管调用堆栈。但perfview在分解托管堆栈方面非常出色,它还提供了一种收集文件I/O事件的方式:

在“运行/收集”对话框中选择文件I/O事件:

enter image description here

跟踪完成后,您应该在目录树中找到文件I/O事件:

enter image description here

双击它应该会弹出一个窗口,其中包含所有已收集的文件输入/输出操作。

enter image description here

每个操作都有一个调用堆栈注册,您可以在事件窗口中的其他选项卡上浏览它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接