加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 谁生成核心转储文件?内核还是glibc?

发布时间:2020-12-14 01:01:19 所属栏目:Linux 来源:网络整理
导读:(这里我只针对 Linux) 我假设核心是由glibc的默认信号处理程序生成的. 但如果我谷歌大多数结果说操作系统会产生核心转储.如果OS生成核心,信号处理程序将首先被调用(或)核心转储? 解决方法 内核本身生成coredump.在这里查看linux内核源代码中的核心处理例程
(这里我只针对 Linux)

我假设核心是由glibc的默认信号处理程序生成的.

但如果我谷歌大多数结果说操作系统会产生核心转储.如果OS生成核心,信号处理程序将首先被调用(或)核心转储?

解决方法

内核本身生成coredump.在这里查看linux内核源代码中的核心处理例程:

http://lxr.linux.no/linux+v3.12.6/fs/coredump.c

如果进程收到以下任何信号1,则内核通过尝试coredump进行响应.

#define SIG_KERNEL_COREDUMP_MASK (
rt_sigmask(SIGQUIT)   |  rt_sigmask(SIGILL)    | 
rt_sigmask(SIGTRAP)   |  rt_sigmask(SIGABRT)   | 
rt_sigmask(SIGFPE)    |  rt_sigmask(SIGSEGV)   | 
rt_sigmask(SIGBUS)    |  rt_sigmask(SIGSYS)    | 
rt_sigmask(SIGXCPU)   |  rt_sigmask(SIGXFSZ)   | 
SIGEMT_MASK

此coredump是可配置的,可以通过多种方式禁用或控制,包括文件/ proc / sys / kernel / core_pattern和ulimit.人们还可以通过信号处理机制控制这些信号的传递.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读