Qt Creator 无法启动调试器

Posted

技术标签:

【中文标题】Qt Creator 无法启动调试器【英文标题】:Qt Creator failed to start Debugger 【发布时间】:2015-06-05 08:19:28 【问题描述】:

在Qt Creator 3.4.1下成功构建Qt c++项目。但是当我无法启动调试器时。应用程序中的输出输出:

调试开始

调试失败

调试完成

调试器永远不会真正启动。

在终端输出:

    QProcess: Destroyed while process ("/usr/local/bin/gdb") is still running.
Unexpected GDB stderr: "Python Exception <type 'exceptions.ImportError'> No module named gdb: 
/usr/local/bin/gdb: warning: 
Could not load the Python gdb module from `/usr/local/share/gdb/python'.
Limited Python support is available from the _gdb module.
Suggest passing --data-directory=/path/to/gdb/data-directory.

"
Warning: HANDLE RUNCONTROL START FAILED (no active run control)
Warning: State changed from EngineSetupFailed(2) to DebuggerFinished(23) [master] (no active run control)
Warning: (gdb)  (no active run control)
Warning: 48^done (no active run control)
Warning: (gdb)  (no active run control)
Warning: UNEXPECTED GDB STDERR: Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/opt/Qt5.4.2/Tools/QtCreator/share/qtcreator/debugger/gdbbridge.py", line 20, in <module>
    from dumper import *
  File "/opt/Qt5.4.2/Tools/QtCreator/share/qtcreator/debugger/dumper.py", line 37, in <module>
    import importlib
ImportError: No module named importlib
Traceback (most recent call last):
  File "<string>", line 1, in <module>
NameError: name 'theDumper' is not defined
 (no active run control)
Unexpected GDB stderr: "Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/opt/Qt5.4.2/Tools/QtCreator/share/qtcreator/debugger/gdbbridge.py", line 20, in <module>
    from dumper import *
  File "/opt/Qt5.4.2/Tools/QtCreator/share/qtcreator/debugger/dumper.py", line 37, in <module>
    import importlib
ImportError: No module named importlib
Traceback (most recent call last):
  File "<string>", line 1, in <module>
NameError: name 'theDumper' is not defined
"
Warning: QUIT DEBUGGER REQUESTED IN STATE 23 (no active run control)

更多信息:

gcc used by qt creator : version 5.0.1
gdb used by qt creator : version 7.9

python 2.6.6 installed on my CentOS 6.5 ,and is in PATH .

当我使用源代码安装 gdb 时,我没有附加 --with-python 选项。我用谷歌搜索了有人确实使用该选项进行了构建,但没有任何反应。

【问题讨论】:

docs.python.org/2.7/library/importlib.html '2.7 版新功能' @Amartel Python2.7 已安装,import importlib 在 Python 交互模式下成功。但是Qt Creator 还是报同样的错误。默认python命令现在指向Python2.7。 我不确定 QTCreator 为什么要启动 python 调试器,但看起来你缺少它。尝试运行 python -m pdb 看看你得到了什么。如果你在 Linux 上,你可能需要安装某种 python-devel 包。 @Amartel 向前迈出一小步:GDB 使用 python2.6 虽然已经安装了 Python2.7。我应该使用 --with python 选项重建 gdb 吗? 你手动构建gdb了吗?如果是这样 - 那么是的,尝试重建它。另外,我在这里获得了有关您的问题的大部分信息:***.com/questions/11492683/… 【参考方案1】:

终端的输出暴露了两个问题:

    ImportError: No module named importlib 导致 Python 中的库不受支持。因此,如@Amartel 所说,安装新版本的 Python(大于 2.7)。但在我的情况下,gdb 需要使用 --with-python 配置选项重建,以使 gdb 使用更新版本的 Python .

    Python Exception <type 'exceptions.ImportError'> No module named gdb: /usr/local/bin/gdb' 可以通过将目录下的文件:gdb_src_dir/gdb/data-directory/python/gdb 复制到/usr/local/share/gdb 来解决。注意:我的 gdb 安装在/usr/local/bin 下。

最后,调试器工作正常。

但是,我没有得到问题 2 的原因。任何人都可以解释一下吗?

【讨论】:

以上是关于Qt Creator 无法启动调试器的主要内容,如果未能解决你的问题,请参考以下文章

qt creator创建cmake构建的程序,无法启动调试(点左下角运行不出结果 No executable specified.)

OpenGL 程序无法在 Qt Creator 中启动

Qt Creator 卡在 Mac 操作系统上的“启动调试器”中

在 Windows 上使用 Qt Creator 进行调试时未显示 QStrings

Qt Creator - 无法使用调试器:program.exe 不是可执行格式:文件格式无法识别

无法让 Qt Creator 调试在 Windows 10 上运行