【问题标题】:Cannot step into Qt source无法进入 Qt 源代码
【发布时间】:2021-06-14 16:26:28
【问题描述】:

我创建了一个 Qt 项目,使用 msvc2017-32bit 工具包构建项目,并在 Qt Creator 中调试该项目。问题是我无法进入 Qt 函数。我可以在自己的源代码中的断点处停止,但不能在 Qt src 目录中的文件中的断点处停止。当我进入 Qt 函数时,调试按钮会出现一条消息 Stopped: "end-stepping-range"。为什么会发生这种情况?

根据@user13088490的建议,我在windows 10 SDK中安装了windows的调试工具,但问题依旧。

【问题讨论】:

  • 你真的安装了调试信息吗/qt dll build 有调试信息吗?
  • 是的,我用的是官方的qt pre-build,里面有Qt5Cored.dll等dll的debug版本。我在调试器日志中看到了这个:fullname="C:/Qt/Qt5.3.1/5.3/mingw482_32\\qtbase\\src\\winmain/qtmain_win.cpp",这显然是不正确的。不知道这个全名是怎么形成的。
  • 你是否也链接到这些库?
  • 是的,我链接到这些库。我只是使用向导创建了一个简单的 qt 小部件项目。它可以毫无问题地构建和运行。只是无法调试它。
  • 您是否将已安装编译器的路径添加到系统路径中?

标签: qt qt-creator


【解决方案1】:

进入MaintenanceTool并检查Qt Creator 4.15.2 CDB Debugger SupportDebugging Tools for Windows是否被选中。

【讨论】:

  • 在维护工具中选择“添加或删除组件”选项时,我只在“组件名称/开发人员和设计人员工具”下看到 Qt Creator CDB 调试器支持(已选择并安装)。我可以在 download.qt.io 的某处下载“Windows 调试工具”吗?
【解决方案2】:

按照 Qt here 的说明进行操作。

对于 Mac,说明如下:

  • 在Projects->Build&Run->Run->Run Settings->Run,选择“Use debug version of frameworks”。

Windows 有不同的说明,但我还没有尝试过。

您可能还需要安装 QT 源代码。

【讨论】:

  • 我使用的是 Windows,而不是 MacOS。没有“使用框架的调试版本”。
  • @William 确实如此,但在同一页面中有一个单独的部分包含 Windows 的说明。不过,我还没有尝试过。无论如何,我会更新我的答案。谢谢。
【解决方案3】:

我在 Windows 上运行 Qt,尽管编译器与您不同,您可以通过转到 Tools->Options->Debugger 来设置调试目标路径。从这里您可以单击按钮Add Qt sources...。下面是我的设置图片,这对我有用。

【讨论】:

  • 还是不行。正如我在堆栈视图中看到的那样,Qt 创建者似乎找到了源 C:\Qt\Qt5.12.6\5.12.6\Src\qtbase\src\winmain\qtmain_win.cpp,但它无法进入 Qt 类的源,例如QWidget。在调试器日志窗口中,我可以看到“ Step into: Hit frame with no source, step out...”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多