Gdb: программа выхода без выхода gdb
Я отлаживаю программу с помощью gdb. Сначала я load
мой исполняемый файл, затем я continue
для запуска программы. Я иногда хочу прерывать выполнение моей программы, поэтому я делаю Ctrl + C
.
Моя проблема в том, что это закрывает и мою программу, и gdb. Как я могу выйти из моей программы, не выходя из gdb?
Ответы
Ответ 1
Похоже, что в Windows вы должны использовать Ctrl-Break
not Ctrl-C
. Смотрите страница.
Выдержки:
Программы MS-Windows, вызывающие SetConsoleMode для отключения специального Значение клавиши Ctrl-C не может быть прервано, набрав C-c. По этой причине gdb на MS-Windows поддерживает C- как альтернативная последовательность прерываний, которая может использоваться для прерывания debuggee, даже если он игнорирует C-c.
Ответ 2
Вы пытались использовать kill
изнутри gdb?
Ответ 3
Используйте ctrl-c, чтобы прервать приложение. Затем запустите "сигнал SIGINT" из приглашения GDB, который отправит этот сигнал вашему приложению, в результате чего он будет делать те же вещи, что обычно делал бы, когда вы выполняете ctrl-c из командной строки.
Ответ 4
Сначала запустите программу (не изнутри gdb), а затем найдите ее pid.
В другой оболочке запустите gdb --pid=<your program pid>
. Это привязывает gdb к запущенной программе. Он останавливает выполнение программы, поэтому продолжайте выпуск c
.
Теперь выйдите из своей программы, ваш сеанс gdb останется там.
Ответ 5
Как сказал Манлио, вы хотите, чтобы в этом случае было kill
, что подскажет вам сообщение, которое гласит:
Kill the program being debugged? (y or n)
Если вы набираете help running
вы увидите все важные команды, которые вам понадобятся, чтобы делать общие вещи, такие как остановка выполнения текущей программы. Это должны быть все команды для вашей программы, а не gdb.
![shell]()