Обработка сигналов
Сигналом— называется асинхронное событие, происходящее в программе и чем-то напоминающее структурные исключения в Windows. Сигналы делятся на фатальные и не фатальные. Пример не фатального сигнала является SIGALRM, возбуждаемый при срабатывании интервального таймера. А вот при нарушения доступа к памяти генерируется сигнал SIGSEGV, завершающий программу в аварийной режиме (если только программист не предусмотрел специальный обработчик).
Отладчик gdb
перехватывает все сигналы и в зависимости от своей конфигурации либо передает сигнал программе, либо "поглощает" его, делая вид, что ничего интересного не происходит.
Посмотреть текущую конфигурацию gdb можно с помощью команды "info signals" (она же "info handle"), а для изменения реакции gdb необходимо воспользоваться "handle сигнал поведение", где сигнал — название сигнала (например, "SIGSEGV"), а поведение — реакция отладчика на возникновения сигнала, описываемая следующими ключевыми словами:
nostop при получении этого сигнала GDB не останавливает программу;
stop при получении этого сигнала GDB останавливает программу;
print при получении данного сигнала GDB выводит сообщение о нем на экран;
noprint GDB не замечает этот сигнал;
pass GDB позволяет программе увидеть этот сигнал;
nopass GDB массирует этот сигнал, не позволяя программе увидеть его.