【发布时间】:2011-04-06 18:18:29
【问题描述】:
到目前为止,当我按下 F11 时,我的 Visual Studio 2008 调试器会优雅地进入 Qt 库代码。将 Qt 升级到最新版本并更改 QTDIR 后,F11 不再单步执行库代码。任何线索如何使调试器再次智能?
【问题讨论】:
-
您链接到正确的调试库?也许检查 .pdb 文件是否存在并被 VS 调试器找到。
标签: qt visual-c++ debugging
到目前为止,当我按下 F11 时,我的 Visual Studio 2008 调试器会优雅地进入 Qt 库代码。将 Qt 升级到最新版本并更改 QTDIR 后,F11 不再单步执行库代码。任何线索如何使调试器再次智能?
【问题讨论】:
标签: qt visual-c++ debugging
激活模块列表,Debug - Windows - Modules,查看加载了哪些库以及是否为这些库加载了调试符号。请注意,您需要在您的进程上激活调试器才能执行此操作。
在调试模式下,Qt 库应以 d 为后缀。例如 QtCored4.dll。如果您在列表中看到 QtCore4.dll,则您链接到了错误的库。如果它确实显示 QtCored4.dll 但在 Symbol Status 下存在与 Symbols loaded. 不同的东西,那么这就是原因。您可以通过右键单击 dll 并选择 Load Symbols 在此处手动加载符号。单击该文件后,它会询问 Pdb 文件。
您可以从工具 - 选项 - 调试(树) - 符号(树)中添加更多 pdb 文件位置(如果它们未加载但存在)。如果您希望自动加载符号。
如果它给出一些错误,即 pdb 文件与二进制文件不匹配或类似的东西,你应该重新构建你的 Qt 调试版本,除非你有更多的 pdb 文件可以尝试。使用 Visual Studio 命令提示符并转到 Qt 目录,运行 configure 和 nmake。这需要一段时间,可能需要几个小时。有一些切换到仅构建调试版本,但我忘记了它的去向。请注意,构建可能会失败,之后会很有趣地搜索 www.google.com。最好的选择可能是获取仅源包,我忘记了从哪里得到它,而且不容易找到。如果你知道在哪里得到它,请告诉我。我依稀记得可能有其他方法可以构建调试版本,但这是我唯一确定的方法。
【讨论】:
@0xbaadf00d 建议“打开 Debug/Windows/Modules 视图”以验证哪些模块已成功加载,哪些未加载非常有用。
以下是我需要单步进入 Qt 源代码时检查的内容的摘要:
【讨论】: