Как поймать SIGSEGV любой программы? - PullRequest
3 голосов
/ 24 мая 2011

В дистрибутивах на основе Fedora и Fedora существуют программы с именем abrt (https://fedorahosted.org/abrt/)). Он улавливает фатальные сигналы всей системы, сохраняет coredump и анализирует его.

  • Как можно поймать сигналы других программ? Насколько я знаю, вы можете поймать только сигналы для вашего процесса.
  • Как abrt сохраняет файл ядра после перехвата сигнала, если ulimit -c по умолчанию имеет значение 0?

1 Ответ

1 голос
/ 24 мая 2011

Он не ловит сигналы и не читает файлы ядра. Вместо этого ABRT использует /proc/sys/kernel/core_pattern для захвата файла ядра, когда ядро ​​его генерирует.

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