我已经在仅限 Linux 的 C++ 应用程序中创建了一个 HUP 信号处理程序(根据 QT link),并且正在 QT Creator 5.1 中工作。代码在 QT Creator 中编译和运行良好,但是当我从命令行发送 HUP 信号时,QT Creator 停止并弹出:
“下级停止是因为它收到了来自操作系统的信号”以及 HUP 信号信息。
如果我单击调试面板上的继续按钮,我会在我的代码中看到我的 HUP 信号处理程序打印出我的 qDebug 语句。我的问题是,这是正常行为吗?当我的代码正确处理 HUP 信号时,为什么 QT Creator 会捕获 HUP 并停止我的代码?
最佳答案
只需在“工具”->“选项...”->“调试器”->“GDB”中取消选中“接收信号时显示消息框”框即可。
附言当然,这只涉及 Qt Creator 中的弹出窗口,但主要部分是调试器。如果您希望 gdb 不捕获信号而是将其传递给您的程序,您需要向 gdb 提供如下命令:handle SIGHUP pass nostop noprint
(参见 Window -> Views -> Debugger Log 或Tools -> Options... -> Debugger -> Locals & Expressions -> Debugging Helper Customization(如下图所示的 SIGINT 信号)。
关于linux - qt creator 在 Linux 信号上停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19409573/