linux - 如何捕获任何程序的 SIGSEGV?

标签 linux signals fedora

在 Fedora 和基于 Fedora 的发行版中有名为 abrt (https://fedorahosted.org/abrt/) 的程序。 它在系统范围内捕获致命信号,保存核心转储并对其进行分析。

  • abrt 如何捕获其他程序的信号?据我所知,您只能捕捉到您进程的信号。
  • 如果 ulimit -c 默认设置为 0,abrt 如何在捕捉到信号后保存核心文件?

最佳答案

它不捕获信号,也不读取核心文件。相反,ABRT 使用 /proc/sys/kernel/core_pattern 在内核生成核心文件时获取它。

$ cat /proc/sys/kernel/core_pattern 
|/usr/libexec/abrt-hook-ccpp /var/spool/abrt %p %s %u %c

关于linux - 如何捕获任何程序的 SIGSEGV?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6115777/

相关文章:

java - 不使用java命令在linux终端中执行java类

linux - Bash 在单独的文件中复制多行

linux - 为什么vim在没有安装cscope的情况下支持cscope?

c - Linux 上的异​​步信号处理程序是如何执行的?

python - pyinstaller没有名为错误的模块

linux - bash 脚本中的 [...] 代表什么?

ruby - 进程如何以 Process.wait 不会注意到的方式死亡?

python - python 中的线性系统连接与 scipy

node.js - Protractor 对象 [object Object] 没有方法 'then'

linux - 如何在 Ubuntu docker image/container 上执行 docker 容器的内置 shell