大家好,又见面了,我是你们的朋友全栈君。
自己写的程序启动时偶尔会被SIGABRT信号杀死。故查看下SIGABRT的用法。
SIGABRT是中止一个程序,它可以被捕捉,但不能被阻塞。处理函数返回后,所有打开的文件描述符将会被关闭,流也会被flush。程序会结束,有可能的话还会core dump。 当程序调用abort(3)时,该进程会向自己发送SIGABRT信号。所以,SIGABRT一般用于信号中一些关键的处理,assert失败时也会使用它。你不应该去捕捉SIGSEGV和SIGABRT信号,如果收到这种信号,说明进程处于一个不确定的状态,很可能会直接挂起。
发现程序中确实有assert失败报错。但是是哪个进程发送的SIGABRT信号暂时还不知道。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/126554.html原文链接:https://javaforall.cn