什么是gdb中的SIG44? [英] What is SIG44 in gdb?

查看:1641
本文介绍了什么是gdb中的SIG44?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Sometimes when I am debugging I get message like this.

Program received signal SIG44, Real-time event 44.

这是什么意思?

编辑:

平台是linux

推荐答案

信号是内核发送给进程的消息,以通知进程系统中发生了某种类型的事件。

A signal is a message sent by the kernel to a process in order to notify the process that event of some kind has occurred in the system.

linux上的常用信号例如是SIGINT(值2,来自键盘的中断)或SIGKILL(值9,杀死程序)。

Usual signals on linux are for example SIGINT (value 2, interrupt from keyboard) or SIGKILL ( value 9, kill a program).

当内核检测到系统事件(例如除以零为SIGFPE,值为8)或进程调用kill()函数明确告诉内核向进程发送信号(或向进程本身调用kill())。

Signals are received either when the kernel detects a system event (like division by zero is SIGFPE, value 8) or when a process invokes the kill() function to explicitly tell the kernel to send a signal to a process (or to the process itself that called the kill() ).

信号通常可以被进程捕获,以便做一些事情。

A signal can often be caught by the process in order to do something.

因此,为了回答你的问题,代码很可能调用kill()函数,并发送一个值为44的信号。因为你得到的消息,这意味着进程已经收到信号,并要退出或做的是写在代码中的情况下,信号来了。

So to answer to your question, the code is most likely calling the kill() function and sending it a signal with value 44 when something happens. Since you are getting that message, it means that the process has received the signal and is going to exit or do what is written in the code in case that signal comes.


与标准信号不同,实时
信号没有预定义的含义:
整组实时信号
可用于应用定义
目的。 (请注意,
LinuxThreads实现使用
前三个实时信号。)

Unlike standard signals, real-time signals have no predefined meanings: the entire set of real-time signals can be used for application-defined purposes. (Note, however, that the LinuxThreads implementation uses the first three real-time signals.)

来源的报价这里

这篇关于什么是gdb中的SIG44?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆