我使用Qt Creator创建了自己的Qt项目,该项目可用于串口。然而,当我尝试调试我的项目时,它总是显示以下消息,特别是当我的项目中有中断时:错误:GDB进程终止。我该如何解决此问题?
p8ekf7hl1#
可以有不同的原因,有不同的解决办法;(下面将列出最常见的原因。
这可能与你的工具链有关,例如我遇到了类似的问题,我用最新的MingW编译我的代码,但Qt是用稍旧的MingW编译器构建的。我到处寻找特定的MingW,Qt就是用它构建的,但找不到。对我来说,唯一的解决方案是从头开始重建Qt(并修复所有构建错误)。
还有一次,我试图将调试器附加到以root身份运行的应用程序。在以root身份运行IDE(以及调试器)之后,事情开始工作。但有时,下面的#3也是必需的。
#3
应用可能会基于当前工作目录加载依赖项,在这种情况下:如果你想将-debugger附加到已经运行的根应用程序:
cd
这可能仅在附加到以root身份运行的应用程序时需要,甚至不适用于所有IDE(但至少QtCreator v4.x需要)。如果不附加:
2nc8po8w2#
一些MinGW GDB版本会在info registers命令下崩溃。BugID SRCBugID的一旦Qt Creator中的调试器面板打开,它将继续向GDB发送info registers命令。要停止此操作,请从C:\Users\[UserName]\AppData\Roaming\QtProject\QtCreator.ini中删除Debugger.MainWindow/ChangedDocks和Debugger.MainWindow/State字段
info registers
C:\Users\[UserName]\AppData\Roaming\QtProject\QtCreator.ini
Debugger.MainWindow/ChangedDocks
Debugger.MainWindow/State
[Debugger.MainWindow] AutoHideTitleBars=true ShowCentralWidget=true ChangedDocks=[REMOVED THIS] State=[REMOVE THIS]
字符串您可以完全删除整个行。
2条答案
按热度按时间p8ekf7hl1#
可以有不同的原因,有不同的解决办法;
(下面将列出最常见的原因。
#1工具链
这可能与你的工具链有关,例如我遇到了类似的问题,我用最新的MingW编译我的代码,但Qt是用稍旧的MingW编译器构建的。
我到处寻找特定的MingW,Qt就是用它构建的,但找不到。
对我来说,唯一的解决方案是从头开始重建Qt(并修复所有构建错误)。
#2权限
还有一次,我试图将调试器附加到以root身份运行的应用程序。
在以root身份运行IDE(以及调试器)之后,事情开始工作。
但有时,下面的
#3
也是必需的。#3工作目录
应用可能会基于当前工作目录加载依赖项,在这种情况下:
如果你想将-debugger附加到已经运行的根应用程序:
cd
到应用程序要求我们的位置(如包含可执行文件的目录),然后从终端启动IDE(使用它的路径)。这可能仅在附加到以root身份运行的应用程序时需要,甚至不适用于所有IDE(但至少QtCreator v4.x需要)。
如果不附加:
2nc8po8w2#
一些MinGW GDB版本会在
info registers
命令下崩溃。BugID SRC
BugID的
一旦Qt Creator中的调试器面板打开,它将继续向GDB发送
info registers
命令。要停止此操作,请从
C:\Users\[UserName]\AppData\Roaming\QtProject\QtCreator.ini
中删除Debugger.MainWindow/ChangedDocks
和Debugger.MainWindow/State
字段字符串
您可以完全删除整个行。