debugging 在gdb中SIG44是什么?

af7jpaap  于 2022-11-14  发布在  其他
关注(0)|答案(2)|浏览(269)

有时当我调试时,我会收到这样的消息。

Program received signal SIG44, Real-time event 44.

这是什么意思?

  • 谢谢-谢谢
    编辑:
    平台为linux
wljmcqd8

wljmcqd81#

信号是由内核发送给进程的消息,用于通知进程系统中发生了某种事件。
Linux上常用的信号有SIGINT(值2,从键盘中断)或SIGKILL(值9,删除程序)。
当内核检测到一个系统事件时(比如被零除是SIGFPE,值为8),或者当一个进程调用kill()函数来显式告诉内核向一个进程(或者向调用kill()的进程本身)发送一个信号时,就会收到信号。
信号通常可以被进程捕获,以便执行某些操作。
因此,为了回答您的问题,代码最有可能调用kill()函数,并在发生某种情况时向其发送值为44的信号。既然您收到了该消息,则意味着进程已收到信号,并将退出或执行代码中所写的操作,以防信号到来。
与标准信号不同,实时信号没有预定义的含义:整个实时信号集都可以用于应用程序定义的目的。(但是请注意,LinuxThreads实现使用前三个实时信号。)
报价来源here

4xy9mtcn

4xy9mtcn2#

GNU C++库使用SIG44在发送条件变量信号时唤醒休眠线程。

相关问题