Как работает инструмент Auto Bug Report Tool (ABRT) для перехвата ядер во время выполнения?


Мой fedora12 установил инструмент под названием ABRT, который, вероятно, поставляется с GNOME. Этот инструмент работает в фоновом режиме и сообщает в режиме реального времени о любом процессе, который потерпел крах.

Я использовал обработчик сигнала, который был в состоянии поймать сигнал SIGSEGV, т. е. он мог сообщить разбитый.

Какие другие способы существуют для того, чтобы процесс получал информацию о состоянии (особенно ядра) другого процесса, не имея связи родитель-потомок?

Есть идеи? Это кажется очень интересный вопрос.

2 2

2 ответа:

ABRT является открытым исходным кодом, в конце концов, так почему бы не посмотреть на ихкод . Архитектура объясняется здесь - Похоже, что они отслеживают $COREDUMPDIR, чтобы обнаружить, когда появляется новый файл ядра.

Ваш вопрос не совсем ясен, но можно получить ядро запущенного процесса, используя gcore:

gcore(1)                           GNU Tools                          gcore(1)

NAME
       gcore - Generate a core file for a running process

SYNOPSIS
       gcore [-o filename] pid

DESCRIPTION
       gcore  generates  a  core file for the process specified by its process
       ID, pid. By default, the core file is written to core.pid, in the  cur‐
       rent directory.

       -o filename
              write core file to filename instead of core.pid