Как я могу продолжать работать с командной консолью GDB? - PullRequest
2 голосов
/ 07 августа 2009

Может быть, простой вопрос.

Когда я присоединяюсь к процессу, я запускаю «продолжить», чтобы он продолжал работать.

Затем я хочу выполнить какую-то другую работу, такую ​​как «add-symbol-file», и не нужно взаимодействовать с целевым процессом, но после команды «continue» консоль gdb заблокируется, поэтому я не могу выполнить никаких действий до того, как прерву процесс.

Есть ли способ, которым я могу сделать это без приостановки процесса?

Ответы [ 3 ]

4 голосов
/ 07 августа 2009

Убедитесь, что консоль, на которой запущен GDB, имеет фокус клавиатуры, затем нажмите CTRL-C. Обычно это приводит к отправке сигнала SIGINT на GDB. Со мной GDB приостанавливает выполнение программы и снова принимает пользовательские команды.

Если CTRL-C не работает (возможно, в другом конфиге), попробуйте отправить сигнал вручную: Найдите pid для gdb, например, с помощью команды top и отправьте SIGINT на gdb:

kill -2 pidhere
3 голосов
/ 09 октября 2009

До недавнего времени вы не могли делать то, что вы хотите, но недавно выпущенный версия 7.0 GDB имеет то, что называется «безостановочный» режим, в котором Приглашение / консоль gdb можно использовать во время работы программы.

См. http://sourceware.org/gdb/current/onlinedocs/gdb_6.html#SEC47

1 голос
/ 07 августа 2009

Возможно, вы захотите немного изучить механизмы удаленного gdb для чего-то подобного. Для понимания процесса отладки подробнее прочитайте эту короткую статью .

...