我对SIGABRT和SIGSEGV信号具有相同的信号处理函数。信号处理函数打印一些日志,然后调用abort。现在,当发生分段错误时,信号处理程序显示消息并调用中止函数。中止函数引发SIGABRT信号,导致信号处理函数调用,并再次调用中止。此递归调用导致核心转储文件很大。 我通过在函数处理程序中包含一个静态变量来修复此问题,以确保只调用一次abort。有没有更好的方法来处理这个问题?有人可以建议吗?。
注意:AIX中不存在此问题。来自SIGABRT信号处理程序的中止函数确实再次引发SIGABRT信号。