【发布时间】:2015-02-05 13:44:59
【问题描述】:
我已将 Windbg 设置为我的开发系统的调试器。而且,果然,如果我在某些程序中引发陷阱,则会弹出对话框;我点击调试按钮;并显示源文件,并突出显示故障行。鼠标悬停和本地变量窗口工作。
今天,我写了一个相当简单的独立 C 应用程序,犯了一个错误,中了一个陷阱。但是这次点击调试没有源;只是控制台窗口。
如果我在 main 上设置断点并按 f5,果然会出现源代码,但是鼠标悬停的变量和局部变量窗口都不起作用。
该程序是为调试而编译的 /Zi /Od 和 .pdb (& .ilk?) 就在源代码和可执行文件旁边。
如果我手动调用windbg 下的可执行文件,同样的事情。没有源,直到运行到其中的断点。然后没有本地 var 知识。
如果它可以找到一个应用程序的适当信息;为什么不是另一个?
干杯,Buk。
【问题讨论】:
-
pdb 是否与 dll 和/或可执行文件位于同一文件夹中?
.sympath显示什么?如果 pdb 与 dll 或执行文件夹不在同一位置,则它将无法完全解析您的符号,在这种情况下,请使用.sympath + 'path_to_symbols'或通过 GUI 'File->Symbol File 添加它们路径...'(或'ctrl'+S)并浏览到文件夹位置并添加,然后您应该勾选'reload'按钮或发出命令.reload -
正如我所说:“.pdb (& .ilk?) 就在源代码和可执行文件旁边。”。
-
.sympath显示什么 -
ILK 仅用于链接器。您可以忽略甚至删除它们。开启
!sym noisy调试符号文件问题。 -
嗯。感谢 !sym 嘈杂的命令。非常有帮助。看来我的安装在某种程度上被破坏了,因为它忘记了它应该记住的东西。例如。如果我手动将 sympath 设置为 .;事情似乎只需要几个步骤;但是如果我跑到断点;它突然忘记了一切,包括同情。同上,无论我更改设置多少次或选中“不再询问”,它总是要求保存工作区。我会尝试卸载/重新安装,也许是不同的版本。
标签: windbg