如何生成在进程监视器中显示更多堆栈信息的应用程序



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

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

如果你有多个版本的应用程序,或者想要调查其他计算机上的调用堆栈,则最好设置符号服务器。 然后,需要将所有 EXE 和 PDB 文件存储到符号服务器中(使用 symstore 实用工具(,并设置系统,以便进程监视器使用符号服务器查找调试信息。 http://support.microsoft.com/kb/311503 的信息应该可以帮助您入门。

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

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

。其中\yourserversymbols是可写和可读的共享,但也可以是计算机上的本地路径。这是缓存符号以供重复使用的位置。

相关内容

  • 没有找到相关文章

最新更新