1、问题描述
使用QtCreator调试终端程序时,因为收到信号SIGSTOP 而退出,无法调试程序。
2、解决方法
解决方式是,设置GDB不处理SIGSTOP ,
在QtCreator中进入GDB命令设置窗口:
Tools -> Options -> Debugger -> GDB -> Additional Startup Command
在 Additional Startup Command 中添加如下内容:
handle SIGSTOP nostop pass
参考网址:https://bugreports.qt.io/browse/QTCREATORBUG-25082
3、扩展:GDB handle命令详解
handle 命令的语法格式如下:
(gdb) handle signal mode
其中,signal 参数表示要设定的目标信号,它通常为某个信号的全名(SIGINT)或者简称(去除‘SIG’后的部分,如 INT);如果要指定所有信号,可以用 all 表示。
mode 参数用于明确 GDB 处理该目标信息的方式,其值可以是如下几个:
nostop:当信号发生时,GDB 不会暂停程序,其可以继续执行,但会打印出一条提示信息,告诉我们信号已经发生;
stop:当信号发生时,GDB 会暂停程序执行。
noprint:当信号发生时,GDB 不会打印出任何提示信息;
p
在使用QtCreator调试终端程序时遇到SIGSTOP信号导致调试终止的问题。解决方法是在QtCreator的GDB设置中添加'handle SIGSTOP nostop'命令,防止因SIGSTOP信号暂停程序。此外,介绍了GDB的handle命令用法,用于控制GDB如何处理特定信号。
订阅专栏 解锁全文
5506

被折叠的 条评论
为什么被折叠?



