1
我想在Linux C中看到SIGABRT的默认处理程序的源代码,但是我找不到它。你能介意帮助找到它吗?如何找到默认信号处理函数的源代码?
我想在Linux C中看到SIGABRT的默认处理程序的源代码,但是我找不到它。你能介意帮助找到它吗?如何找到默认信号处理函数的源代码?
http://lxr.free-electrons.com是阅读linux内核源代码的好方法。
快速搜索SIGABRT
表明它仅使用SIG_KERNEL_COREDUMP_MASK宏。这个宏反过来被sig_kernel_coredump使用。
追踪此宏的使用情况将导致我们在kernel/signal.c:2301中执行信号处理程序。
这对应于man pages告诉我们的内容,即SIGABRT的默认操作是终止进程并转储程序核心内存。在Linux C中使用
?你的意思是Linux内核信号处理器? –
SIGABRT(或其他任何信号)都没有用户级别的默认信号处理程序。 SIGABRT的默认行为是以核心转储结束;这全部由内核处理,而不是由用户级代码处理。 –