Не удается ввести ввод в cgdb в Linux Ubuntu 14.04

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

#include <cstdio>
using namespace std;

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

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

Введите «apropos word» для поиска команд, связанных с «word» …
Чтение символов из теста … сделано.

(GDB) начать

Временная точка останова 1 в 0x400585: файл test.cpp, строка 7.
Запуск программы: / home / Алекс / рабочий стол / тест

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

(GDB) следующий

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

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

0

Решение

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

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

Чтобы вызвать окно tty, нажмите «T» в командном режиме (escape)

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

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

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

1

Другие решения


По вопросам рекламы [email protected]