Ответ cnicutar - лучшее предположение ИМХО.
Возможно, что сигнал был отправлен другим процессом, хотя в случае SIGBART он, скорее всего, будет излучаться тем же процессом, который получает его черезabort(3)
функция libc.
В случае сомнения вы можете запустить ваше приложение с помощью strace -e kill yourapp you args ...
, чтобы быстро проверить, действительно ли этот системный вызов kill
вызывается из вашей программы или зависимых библиотек.Или используйте gdb catch syscall
.
Обратите внимание, что в некоторых случаях само ядро может излучать сигналы, например SIGKILL
, когда печально известный "убийца ООМ" вступает в действие.
Кстати,сигналы доставляются асинхронно, они нарушают нормальный рабочий процесс вашей программы.Вот почему их больно отследить.Помимо таких машин, как SystemTap, я не знаю, как отслеживать или регистрировать передачу и передачу сигналов в ядре.