c – POSIX信号行为

前端之家收集整理的这篇文章主要介绍了c – POSIX信号行为前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果一个进程由于SIGTRAP信号而当前停止并且它通过kill()发送了一个SIGSTOP信号,那么默认行为是什么? SIGSTOP是否会在该过程再次继续后交付的待处理信号?或者它会被丢弃/忽略?

如果SIGSTOP排队,是否有任何方法可以从该进程外部将其从队列中删除,例如在跟踪过程中?

解决方法

从signal(7)手册页:
The signals SIGKILL and SIGSTOP cannot be caught,blocked,or ignored.

一个简单的测试,应用程序在断点处停止并向其发送SIGSTOP,显示gdb在我点击“下一个”时显示一些信息.信号显然已传递给应用程序.在我发送SIGCONT之前,它无法继续调试.

(gdb) next
Program received signal SIGSTOP,Stopped (signal).
fill (arr=0x7fffffffdff0,size=5) at tmp.cpp:28
(gdb) next
Program received signal SIGCONT,Continued.
fill (arr=0x7fffffffdff0,size=5) at tmp.cpp:28
(gdb) next
(gdb)

猜你在找的C&C++相关文章