2015-09-22 3 views
0

Вот моя очень простая программа, которую я пытаюсь отладить с помощью cgdb. Проблема в том, что я добираюсь до строки «scanf», она запрашивает ввод, но как только я нажимаю клавишу ввода после ввода ввода (2 в примере ниже), он, кажется, входит в бесконечный цикл. Однако он отлично работает в gdb.Невозможно ввести вход в cgdb в Linux Ubuntu 14.04

#include <cstdio> 
using namespace std; 

int main() 
{ 
    int n; 
    scanf("%d", &n); 
    printf("%d\n", n); 
    return 0; 
} 

Вот выполнение трассировки в терминале:

Тип «по поводу слова» для поиска команд, связанных с «слово» ... Чтение символов из теста ... сделано.

(GDB) начать

Временная контрольная точка 1 на 0x400585: файл test.cpp, строка 7. Запуск программы:/Главная/Alex/Desktop/тест

Временные точки останова 1, основной() в test.cpp: 7

(GDB) рядом

2 (это мой вклад)

Бесконечный цикл начинается здесь.

+0

Это на linux? – sfjac

+0

@sfjac Я должен был упомянуть. Да, это на Ubuntu 14.04. Я редактировал заголовок. –

ответ

1

Согласно информации странице cgdb, вам необходимо либо:

  • запустить программу на одном терминале, и прикрепить к нему с CGDB из другого терминала
  • или передать аргументы с помощью окна терминальной

Чтобы вызвать окно терминального, нажмите 'T' в командном режиме (побег)

извлеченного из информационной страницы:

Отправка ввода/вывода отлаживаемой программы

Этот метод похож на получение и из «режима GDB». Окно tty не отображается . Это связано с тем, что это необходимо, только если пользователь желает отправить данные в отлаживаемую программу. Чтобы отобразить окно tty , нажмите «T» в командном режиме.

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