I recently came across an app that froze in a SIGABRT handler with no other signal registered to immediately core dump. Until we standardize leaving one of SIGSTOP, SIGABRT, SIGTRAP, etc., alone, we'll just use gcore and SIGKILL, but given that broken handling was the issue, I wondered why there isn't along with SIGSTOP 开发者_开发百科and SIGKILL a standard SIGCORE that can't be caught or ignored. Does anyone know why one was or should not be added?
A reason may be that the programmer has a way to avoid the execution of the standard fault handler. Sometimes the standard handler may be "wrong" (e.g. the "core" file cration may be slow, or expensive because of leak of disk space). For every "reasonable" "standard" fault behaviour, there is an application (or perhaps a programmer) that thinks it's better to change it...
精彩评论