如何构建一个在Process Monitor中显示更多堆栈信息的应用程序?

时间:2012-05-04 23:03:28

标签: windows process process-monitor

我刚刚发现了Sysinternal的Process Monitor,并喜欢它对流程正在做什么的见解。但是,当我尝试查看对内核的软件调用的详细信息时,堆栈中充满了“未知数”。我应该如何构建我的应用程序,以便在堆栈跟踪中显示函数名称?

1 个答案:

答案 0 :(得分:2)

经常使用/ Zi编译它,并将它与/ debug链接就足够了。 您应该获得一个PDB文件,其中包含应用程序的所有调试信息。只要您不移动可执行文件或PDB,Process Monitor通常应该找到它。

如果您有多个版本的应用程序,或者如果要调查其他计算机上的调用堆栈,则最好设置符号服务器。然后,您需要将所有EXE和PDB文件存储到Symbol Server(使用symstore实用程序),并设置系统,以便Process Monitor使用Symbol Server查找调试信息。 http://support.microsoft.com/kb/311503上的信息应该开始使用。

正常工作的一种方法是设置环境变量_NT_SYMBOL_PATH

set _NT_SYMBOL_PATH=symsrv*symsrv.dll*\\yourserver\symbols*http://msdl.microsoft.com/download/symbols

...其中\\yourserver\symbols是一个可写和可读的共享,但也可以是您计算机上的本地路径。这是符号被缓存以供重复使用的地方。