我在Linux中只在C ++应用程序中创建了一个HUP信号处理程序(根据QT link)并且正在使用QT Creator 5.1。代码在QT Creator中编译并运行良好,但是当我从命令行发送HUP信号时,QT Creator会弹出一个停止:
“劣质停止,因为它收到来自操作系统的信号”以及HUP信号信息。
如果我单击调试面板上的CONTINUE按钮,我会在代码中看到来自我的HUP信号处理程序的qDebug语句打印输出。我的问题是,这是正常的行为吗?当我的代码正确处理HUP信号时,为什么QT Creator会捕获HUP并停止我的代码?
答案 0 :(得分:8)
在工具 - >中取消选中“在接收信号时显示消息框”框。选项...... - >调试器 - > GDB。
P.S。当然,这仅涉及Qt Creator中的弹出窗口,但主要部分是调试器。如果你希望gdb不捕获信号但是将它传递给你的程序,你需要给gdb一个如下命令:handle SIGHUP pass nostop noprint
(参见Window - > Views - > Debugger Log or Tools - > Options ... - >调试器 - > GDB - > GDB启动脚本调试助手自定义(如下图中的SIGINT信号))。