gpt4 book ai didi

linux - 信号处理程序后信号无法生成核心转储

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:12:07 24 4
gpt4 key购买 nike

我从某人那里听说,如果信号在信号处理程序中被捕获,它不会生成核心转储或无用的核心转储。

这是对的吗?为什么?

在 Linux 上工作。

最佳答案

核心转储通常由其默认处理程序响应某些信号而生成。如果您修改该处理程序,您将修改响应,因此不会获得核心转储。

核心转储是默认生成的,以响应因故障(SIGSEGV(访问未映射内存)、SIGILL(无效指令)、SIGBUS(各种其他不正确的系统访问))和 SIGABRT 信号而发生的信号,该信号用于当程序本身检测到 fatal error 时(在标准运行时,通过断言或通过调用 abort())。它也是一些其他信号的默认值。特别是 SIGUSR1,程序不应该接收它,除非它准备好处理它并更改处理程序。有关完整列表,请参阅 man 7 signal

请注意,“默认处理程序”不是应用程序中的代码。它是一个特殊的值,向内核表明它应该代表应用程序采取一些特定的行动。此操作对于某些信号是退出,对于另一些信号是使用核心转储退出,对于其余信号什么也不做。

关于linux - 信号处理程序后信号无法生成核心转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6817830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com