如何获得使用Visual Studio 2005开发的c ++应用程序的完整调用堆栈?我想有一个完整的调用堆栈,包括系统库中的代码。
我是否必须在Visual Studio中更改某些设置,或者是否必须安装其他软件?
答案 0 :(得分:6)
获取所有项目依赖项的调试信息。这是在项目属性的“配置属性 - > C / C ++ - >常规”部分中指定的。
在菜单上,转到“工具 - >选项”,然后选择“调试 - >符号”。
添加一个新的符号位置(文件夹图标),指向Microsoft的免费符号服务器“symsrv symsrv.dll c:\ symbols * http://msdl.microsoft.com/downloads/symbols”
在本地填写“缓存符号”字段,这样您就不会一直上网了。
答案 1 :(得分:0)
同意Clay,但对于Symbols Server,你应该从免费的微软下载“Debugging Tools For Windows”获得最新的symsrv.DLL。
(因为你明确询问了你需要下载的内容,我认为你还没有下载)
答案 2 :(得分:0)
或者,可选地(假设未安装Visual Studio),获取Windows Debugging Tools的副本,安装并从调试器(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的的