Как мне остановить продолжение в GDB

Я впервые использую GDB. Я запускаю

$ gdb

, затем запускаю

attach <mypid>

, затем вижу, что мой процесс застрял (что, вероятно, нормально). Теперь я хочу, чтобы он продолжал работать, поэтому я запускаю

continue

, и мой процесс продолжается но отсюда я застрял, если хочу снова посмотреть текущую трассировку стека и т. д. Я не смог продолжить работу ... Я попробовал Ctrl - D и т. д., но у меня ничего не получалось ... (было только предположение).

21
задан Melebius 5 December 2017 в 14:26
поделиться

2 ответа

Вот краткое руководство по GDB , а вот полное руководство по GDB .

Целью отладки является проверка интересных / подозрительных частей программы. Точки останова позволяют остановить выполнение в некотором исходном местоположении, а точки наблюдения позволяют останавливать выполнение при изменении интересных данных.

Простые примеры:

(gdb) break my_function
(gdb) cont

Это вставит точку останова в начало my_function , поэтому, когда выполнение программы входит в функцию, программа будет приостановлена, и вы получите приглашение GDB обратно, и сможете в проверять состояние программы . Или вы можете пройти через код.

(gdb) watch my_var
(gdb) cont

То же самое, но теперь программа будет остановлена ​​в любом месте, которое изменяет значение my_var .

Бесстыдный плагин - вот ссылка на мою презентацию GDB в NYC BSD User Group . Надеюсь это поможет.

4
ответ дан 29 November 2019 в 21:38
поделиться

Control+C в процессе gdb должно вернуть вас в командную строку.

5
ответ дан 29 November 2019 в 21:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: