最近更新了QTCreater14版本,更新后QT5.15.2的项目无法正常调试,经过证实,发现是因为QTCreater14版本存在问题,gdb调试时无法正确使用python版本。 gdb错误信息:

>&"python from gdbbridge import *\n"
>&"Traceback (most recent call last):\n"
>&"  File \"<string>\", line 1, in <module>\n"
>&"  File \"C:/QT/5.15.2/Tools/QtCreator/share/qtcreator/debugger/gdbbridge.py\", line 16, in <module>\n"
>&"    from dumper import DumperBase, Children, TopLevelItem\n"
>&"  File \"C:/QT/5.15.2/Tools/QtCreator/share/qtcreator/debugger/dumper.py\", line 130, in <module>\n"
>&"    class DumperBase():\n"
>&"  File \"C:/QT/5.15.2/Tools/QtCreator/share/qtcreator/debugger/dumper.py\", line 3729, in DumperBase\n"
>&"    @functools.lru_cache(maxsize = None)\n"
>&"AttributeError: 'module' object has no attribute 'lru_cache'\n"
>&"Error while executing Python code.\n"
>166^error,msg="Error while executing Python code."

>&"python theDumper.loadDumpers({\"token\":167})\n"
>&"Traceback (most recent call last):\n"
>&"  File \"<string>\", line 1, in <module>\n"
>&"NameError: name 'theDumper' is not defined\n"
>&"Error while executing Python code.\n"
>167^error,msg="Error while executing Python code."
d[GDB] NOTE: ENGINE SETUP FAILED
d[GDB] State changed from EngineSetupRequested(1) to EngineSetupFailed(2)
<Debugging has failed.
d[GDB] State changed from EngineSetupFailed(2) to DebuggerFinished(16)

解决方案有两种:

1.换回QTCreater13.0.版本,切换之后恢复正常。下载链接: https://download.qt.io/official_releases/qtcreator/13.0/13.0.2/

下载安装好后只需要手动选择一下之前已经安装好QT Kits的目录就好了,不需要再把Kits重新安装一遍。

QTCreater Launching Debugger 错误_Python

2.在构建套件里面克隆一个Desktop Qt 5.15.2 MinGW 64-bit,然后修改调试器的版本,我这里改为GNU gdb 13.1.0 64-bit,相比之下,这种方案更方便一些。

QTCreater Launching Debugger 错误_Python_02