debugging GDB进程终止

wn9m85ua  于 2023-08-06  发布在  其他
关注(0)|答案(2)|浏览(184)

我使用Qt Creator创建了自己的Qt项目,该项目可用于串口。
然而,当我尝试调试我的项目时,它总是显示以下消息,特别是当我的项目中有中断时:
错误:GDB进程终止。
我该如何解决此问题?

p8ekf7hl

p8ekf7hl1#

可以有不同的原因,有不同的解决办法;
(下面将列出最常见的原因。

#1工具链

这可能与你的工具链有关,例如我遇到了类似的问题,我用最新的MingW编译我的代码,但Qt是用稍旧的MingW编译器构建的。
我到处寻找特定的MingW,Qt就是用它构建的,但找不到。
对我来说,唯一的解决方案是从头开始重建Qt(并修复所有构建错误)。

#2权限

还有一次,我试图将调试器附加到以root身份运行的应用程序。
在以root身份运行IDE(以及调试器)之后,事情开始工作。
但有时,下面的#3也是必需的。

#3工作目录

应用可能会基于当前工作目录加载依赖项,在这种情况下:
如果你想将-debugger附加到已经运行的根应用程序:

  • 我们需要改变IDE的启动方式,例如,打开终端和cd到应用程序要求我们的位置(如包含可执行文件的目录),然后从终端启动IDE(使用它的路径)。

这可能仅在附加到以root身份运行的应用程序时需要,甚至不适用于所有IDE(但至少QtCreator v4.x需要)。
如果不附加:

  • 简单地更改IDE配置,我的意思是,大多数IDE允许您选择工作目录(如QtCreator所做的),首先这样做,然后开始调试。
2nc8po8w

2nc8po8w2#

一些MinGW GDB版本会在info registers命令下崩溃。
BugID SRC
BugID
一旦Qt Creator中的调试器面板打开,它将继续向GDB发送info registers命令。
要停止此操作,请从C:\Users\[UserName]\AppData\Roaming\QtProject\QtCreator.ini中删除Debugger.MainWindow/ChangedDocksDebugger.MainWindow/State字段

[Debugger.MainWindow]
AutoHideTitleBars=true
ShowCentralWidget=true

ChangedDocks=[REMOVED THIS]
State=[REMOVE THIS]

字符串
您可以完全删除整个行。

相关问题