“SIGSEGV”是“与进程当前状态相关的信号在其他信号之前传递”的示例吗?

“SIGSEGV”是“与进程当前状态相关的信号在其他信号之前传递”的示例吗?

APUE 说

如果多个信号准备好传递给进程,会发生什么情况? POSIX.1 没有指定信号传递到进程的顺序。然而,POSIX.1 的基本原理确实表明,与进程当前状态相关的信号在其他信号之前传递。 (SIGSEGV 就是这样一种信号。

SIGSEGV“与进程当前状态相关的信号如何在其他信号之前传递”的示例?

谢谢。

答案1

SEGV通常当进程的状态为腐败(内存未映射到应有的位置,或者映射的权限与预期不同,程序逻辑正在尝试访问不应访问的内存,等等)。

在这种情况下,它有助于尽快转储核心并死亡,以便后续更改不会进一步搞乱一切并使任何事后调试变得徒劳。

相关内容