Подтвердить что ты не робот

Gdb: программа выхода без выхода gdb

Я отлаживаю программу с помощью gdb. Сначала я load мой исполняемый файл, затем я continue для запуска программы. Я иногда хочу прерывать выполнение моей программы, поэтому я делаю Ctrl + C.

Моя проблема в том, что это закрывает и мою программу, и gdb. Как я могу выйти из моей программы, не выходя из gdb?

4b9b3361

Ответ 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