не может отладить небольшую программу на затмении helios cdt, используя mingw / gdb под windows, консоль зависает - PullRequest
14 голосов
/ 15 мая 2011

Я пытался использовать Eclipse CDT для создания некоторых примеров на c ++, я могу просто запустить их с помощью команды run, но всякий раз, когда я пытаюсь отладить, окно консоли зависает, я могу ввести, но программа не продолжается

При отладке я получаю следующий вывод в окне консоли (без точек останова, но с перерывами на главном из-за настроек по умолчанию):

Hello, world
put your name: 15^running

Кнопка продолжения отключена и ничего не делает, когда я что-то ввожу и нажимаю , введите . 15 - это случайное число, иногда его 16, 20 и т. Д.

Если я запускаю программу под затмением, я получаю приглашение ввода просто отлично:

Hello, world
put your name: test
Hello test

это код, который я пытаюсь отладить:

#include <iostream>
#include <string>

int main() {
    std::cout << "Hello, world" << std::endl;
    std::string name;
    std::cout << "put your name: ";
    std::cin >> name;
    std::cout << "Hello " + name << std::endl;
    return 0;
}

Мой путь вар:
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\WBEM;C:\Program Files\Java\jdk1.6.0_14\bin;C:\MinGW\bin

Версия Eclipse: Helios Service Release 2
Версия CDT: 7.0.2
ОС: windows xp
Версия GDB: GNU GDB (GDB) 7,2

Как я могу отладить этот небольшой пример в CDT, без проблем?

Ответы [ 3 ]

12 голосов
/ 20 мая 2011

15^running выглядит как запись результата из Машинного интерфейса GDB .Обычно он не должен отображаться в консоли Eclipse.

Я рекомендую попробовать другой лаунчер Create Process.Его можно изменить следующим образом:

  1. В главном меню выберите «Выполнить» -> «Отладочные конфигурации ...».

  2. В открывшемся окне «Отладочные конфигурации», показанном ниже, нажмите «Выбрать другой ...» напротив «Использование GDB (DSF) Создать панель запуска процесса».

    enter image description here

  3. В открывшемся окне «Выбор предпочтительной программы запуска», показанном ниже, установите флажок «Использовать определенные настройки конфигурации», выберите «Стандартная панель запуска процесса» в списке ниже и нажмите кнопку «ОК».

    enter image description here

  4. Теперь перейдите на вкладку «Отладчик» в окне «Конфигурации отладки», выберите отладчик, например «MinGW gdb», и нажмите «Применить».

    enter image description here

С помощью стандартного средства запуска процесса создания я могу отладить вашу программу, хотя «поставить ваше имя:» выводится только после того, как я что-то напечатал и нажал Enter, потому что поток вывода не очищен.

1 голос
/ 18 мая 2011

Попробуйте взглянуть на это http://www.cprogramming.com/gdbtutorial.html и посмотрите, поможет ли это.Например, вы можете нажать CTRL-C для прерывания?

Также Невозможно ввести ввод с помощью GDB.Справка! может быть указателем, хотя и относится к яблоку.

0 голосов
/ 12 сентября 2011

из FAQ сайта Eclipse:

http://wiki.eclipse.org/CDT/User/FAQ#Eclipse_console_does_not_show_output_on_Windows

Консоль Eclipse не отображает выходные данные в Windows In Eclipse CDT on Windows, стандартный вывод запускаемой или отлаженной программы полностью буферизирован, потому что он не подключен к консоли Windwos, а к труба. Смотрите ошибку 173732 для более подробной информации. Либо добавить fflush звонки после каждый printf или добавить следующие строки в начале основного Функция:

setvbuf(stdout, NULL, _IONBF, 0);
setvbuf(stderr, NULL, _IONBF, 0);

Похоже на ожидаемую ошибку в Windows.

...