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

标签 qt visual-c++ debugging

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

最佳答案

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

在 Debug模式下,Qt 库应以 d 为后缀。例如 QtCored4.dll。如果您在列表中看到 QtCore4.dll,则您链接到了错误的库。如果它确实说 QtCored4.dll 但在符号状态下存在与加载的符号不同的东西,那么这就是原因。您可以通过右键单击 dll 并选择加载符号在此处手动加载符号。单击该文件后,它会询问 Pdb 文件。

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

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

关于qt - 如何让 MSVC 调试器再次进入 Qt 库源代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5571098/

相关文章:

c++ - 在RemoteHostClosedError之后重新连接到服务器时,QTcpSocket无法传输数据

c++ - 在静态库中调用 main 之前的函数

javascript - 我可以在 Google 脚本编辑器(Google Apps 脚本)中调试 JavaScript 代码吗

linux - 将整个 gdb 输出日志保存在文件中

Java - 是否可以使用方法签名输出堆栈跟踪?

c++ - 升级到 ubuntu 17.10(以及 Fedora)后,qDebug() 停止工作(不再打印到控制台)

c++ - 无论文件如何,QFileIconProvider 都返回相同的图标

macos - 将Qt项目移植到Mac时没有声音和其他问题

c++ - 如何将 IHTMLDocument2 ->get_body ->get_innerHTML 变成小写字符串?

visual-c++ - 可以用opencv读取视频流吗?