如何获得使用Visual Studio 2005开发的c ++应用程序的完整调用堆栈?我想有一个完整的调用堆栈,包括系统库中的代码。

我是否必须在Visual Studio中更改某些设置,或者是否必须安装其他软件?

有帮助吗?

解决方案

  1. 获取所有项目依赖项的调试信息。这是在“配置属性 - >”下指定的。 C / C ++ - >一般"项目属性的一部分。

  2. 在菜单上,转到“工具 - >方式];然后选择“调试 - >符号&QUOT ;.

  3. 添加指向Microsoft的免费符号服务器的新符号位置(文件夹图标)“ symsrv symsrv.dll c:\ symbols * http://msdl.microsoft.com/downloads/symbols “

  4. 填写“缓存符号”。在当地有一些地方,所以你不要一直上网。

其他提示

同意Clay,但对于Symbols Server,你应该从“Debugging Tools For Windows”获得最新的symsrv.DLL,这是一个免费的Microsoft下载。

(因为你明确询问了你需要下载的内容,我认为你还没有下载)

或者,可选地(假设未安装Visual Studio),获取 Windows调试工具,安装并从调试器(windbg.exe)中运行您的应用程序或将其附加到已在运行的应用程序:

windbg [.exe] -pn program.exe 点击或点击 windbg [.exe] -p process_id

在您想要观察堆栈跟踪的位置(Ctrl + Break)中断调试器。切换到感兴趣的线程(很可能是执行的主线程):

〜0

修复系统模块的符号(如果可用,也可以修复应用程序):

*修复app的符号 .sympath path_to_app_symbols
*配置调试器下载和存储系统符号的位置
.symfix + path_where_system_symbols_will_be_stored
*强制调试器重新加载符号
.reload

发出一个调用堆栈命令:

kb的
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top