Нажатие Ctrl + C убивает программу.
То есть не стандартное поведение GDB.
Вы установили handle SIGINT nostop pass
?Вы можете проверить текущее расположение сигнала с помощью:
(gdb) handle SIGINT
Signal Stop Print Pass to program Description
SIGINT Yes Yes No Interrupt
Обновление:
Моя программа использует белье для ввода с консоли.Я предполагаю, что он что-то сделал с Ctrl + C
Если ваша программа изменяет настройки терминала, у вас будет очень плохое время для его отладки с того же терминала .
Например, предположим, что программа устанавливает no echo
, а затем достигает точки останова.Я думаю вы получите приглашение (gdb)
, но не увидите никаких команд, которые вы вводите в GDB.
Похоже, вам было бы намного лучше отладить эту программу с помощью другой терминал.Используйте gdb -p $PID
, чтобы прикрепить его извне.