Qt Creator 启动调试器失败

Qt Creator failed to start Debugger

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

调试开始

调试失败

调试完成

调试器从未真正启动。

终端输出:

    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 选项。我用谷歌搜索发现有人确实使用该选项进行构建,但没有任何反应。

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

  1. ImportError: No module named importlib 导致 Python 中的库不受支持。因此,安装新版本的 Python(大于 2.7)作为 @Amartel said.But 在我的情况下,gdb 需要使用 --with-python 配置选项 rebuild使 gdb 使用更新版本的 Python.

  2. 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的原因。谁能解释一下?