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的默認行爲是以核心轉儲結束;這全部由內核處理,而不是由用戶級代碼處理。 –