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.)
Qt Creator 卡在 Mac 操作系统上的“启动调试器”中
在 Windows 上使用 Qt Creator 进行调试时未显示 QStrings