2017-02-03 2 views
1

Я пишу программу клиент/сервер в C.с помощью GDB для отладки интерактивную программу, которая считывает входные данные из стандартного ввода

Мой клиент нить читает ввод из стандартного ввода, это просто какое-то время (1) петли для читать ввод от stdin. Всякий раз, когда он читает строку, он передает ее в другой поток, который обрабатывает разбор и кадрирование сообщений.

Когда я вхожу в gdb, командная строка занята приглашением gdb, и я больше не могу вводить строки в stdin.

Есть ли способ сделать это? (Я не хочу перенаправлять stdin во входной файл, потому что я пробовал этот метод, и он не работал)

ответ

5

Запустите программу в одном терминале и прикрепите к ней из gdb в другом терминале.

Чтобы подключиться к запущенной программе, найдите идентификатор процесса (PID) программы, к которой хотите подключиться, затем выполните команду gdb <executable> <PID>.

+0

Как подключить процесс к gdb? – zanyman

+0

@RaymondZhang: См. Редактирование – caf

Смежные вопросы