如何在 Windows 中跟踪/分析进程?

如何在 Windows 中跟踪/分析进程?

有时,在调查 SQL Server 问题时,我发现将 Visual Studio 调试器附加到它并通过查看调用堆栈来尝试弄清楚它在做什么很有用(公共符号可用,并且通常可以从方法名称中推断出有用的信息)。

可以推断的内部信息类型的一个很好的例子是在这篇博文中这启发了我的尝试。

然而,这可能是一个相当耗时且乏味的过程。通常,我会循环运行感兴趣的代码,连接调试器,然后不断中断并继续,直到我遇到一个看起来与调查问题相关的调用堆栈。然后我可以逐步执行代码并查看被调用的方法名称。然而,这需要很长时间。

有没有什么方法可以自动化这个操作,以便我可以简单地记录短时间内调用的所有方法,然后再查看日志文件?

答案1

如果我没记错的话,你可能正在寻找进程监视器(又名 procmon)。你可以从此 Microsoft 网站

具体来说,“堆栈摘要”菜单选项包含此类信息。更多详细信息请参阅PM2-6:展开堆栈

在此处输入图片描述

答案2

剖析器在更高版本的 Visual Studio 中可以执行此操作。

示例输出

截屏

(和答案在这里说明了为什么这很有用)

或者另外Windows 性能工具包是免费的,而且可以做很多相同甚至更多的事。关于此内容的一系列精彩视频可以在以下网址找到:https://channel9.msdn.com/Search?term=Defrag%20tools%20wpt#ch9Search

相关内容