gpt4 book ai didi

linux - 如何在 Linux 内核中用用户定义的处理程序替换默认处理程序来处理生成核心转储的异常?

转载 作者:太空宇宙 更新时间:2023-11-04 11:38:22 26 4
gpt4 key购买 nike

我正在研究“在 Linux 平台上创建事后数据记录器”。我之前也发布了关于这个项目的问题。在那里,我得到了RHEL版本中创建核心转储文件的调用流程机制:2.6.18.128-el5。

如下:

File                                       Function called
1.source/ arch/i386/kernel/signal.c -----> do_signal( )
2.source/kernel/signal.c ----------> get_signal_to_deliver( )
3.source/fs/exec.c -------------> do_coredump( )
4.source/fs/binfmt_elf.c -------------> elf_core_dump( )

现在,根据项目要求,我需要使用我自己的用户定义信号处理程序来修改默认信号处理程序定义,以处理各种异常(SIGSEGVSIGFPESIGABRT 等)导致核心转储。此外,我需要构建内核以使用我的处理程序替换默认处理程序来保留内核中的更改。

任何人都可以分享执行这些操作的程序吗?

预先感谢所有回复者:)

谢谢vlc

最佳答案

SIGFPE、SIGABRT、SIGSEGV 和其他一些默认情况下已生成核心转储,请参阅 signal(7) .但是,许多发行版将核心文件大小资源限制设置为 0,从而禁用核心转储生成。您可以通过以下方式重新启用它:

ulimit -c unlimited

您可以传递核心转储应该占用的最大文件系统 block 数,而不是unlimited

关于linux - 如何在 Linux 内核中用用户定义的处理程序替换默认处理程序来处理生成核心转储的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5787039/

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