如何让MSVC调试器再次进入Qt库源代码?

时间:2011-04-06 18:18:30

标签: qt visual-c++ debugging

到目前为止,当我按下F11时,我的Visual Studio 2008调试器优雅地进入了Qt库代码。将Qt升级到最新版本并更改QTDIR后,F11不再进入库代码。有关如何使调试器再次智能的任何线索?

2 个答案:

答案 0 :(得分:10)

激活模块列表,调试 - Windows - 模块,以查看加载了哪些库以及是否为这些库加载了调试符号。请注意,您需要在进程上激活调试器才能执行此操作。

在调试模式下,Qt库应以d为后缀。例如QtCored4.dll。如果您在列表中看到QtCore4.dll,则表明您已链接到错误的库。如果它确实说QtCored4.dll但在符号状态下有一些不同于符号加载。,那就是原因。您可以通过右键单击dll并选择加载符号来手动加载符号。单击后,它会询问Pdb文件。

您可以从工具 - 选项 - 调试(树) - 符号(树)中添加更多pdb文件位置(如果它们未加载但存在)。如果您希望自动加载符号。

如果它给出了一些错误,pdb文件与二进制文件或类似的东西不匹配,你应该重新构建你的Qt调试版本,除非你有更多的pdb文件要尝试。使用Visual Studio命令提示符并转到Qt目录,运行configure和nmake。这需要一段时间,可能需要几个小时。有一些转换只建立调试版本,但我忘了它去了哪里。请注意,构建可能会失败,之后www.google.com搜索会很有趣。最好的选择可能是获取源代码包,我忘了在哪里获得它并且它不容易找到。如果你知道从哪里得到它,请告诉我。我依稀记得可能还有其他方法来构建调试版本,但这是我唯一知道的。

答案 1 :(得分:0)

@ 0xbaadf00d关于检查已加载模块的建议使我避免了这一麻烦。

以下是我到目前为止所知道的正确位置:

  • 开发人员的Qt工具包中的DLL必须为Qt版本
  • 如果使用qt.conf文件,则必须指向正确的bin文件夹
  • Qt .pdb文件必须存在于开发人员的Qt版本文件夹中
  • Visual Studio工具/选项/调试/符号应该具有开发人员Qt版本bin文件夹的路径
  • 如果使用WinCE或WEC2013并使用HKLM \ Loader \ SystemPath,则DLL必须位于指定的路径中

您可以在项目属性页面中设置源文件的位置: enter image description here