2010-02-09 4 views
1

, когда программа на C++ читает от cin, ddd предоставляет ему «1» вместо того, чтобы позволить мне вводить ввод в свою консоль. Поскольку программа считывает интерактивные команды, «1» является недопустимой командой, и, как представляется, ddd имеет бесконечную поставку, результатом является бесконечный цикл вывода «invalid command».Отладчик ddd вводит бесконечный цикл, когда программа пытается прочитать ввод в консоль

Неужели кто-то сталкивался с таким поведением и знает, как это преодолеть? Я так расстраиваюсь, что в 21-м веке я должен использовать командную строку gdb, как и в школе 20 лет назад. Встроенный отладчик eclipse слишком медленный, чтобы быть полезным.

версия для ddd - 3.3.11. код фрагмента:

while (true) 
{ 
    cout << greeting; 
    string cmd; 
    cin >> cmd; 

    if (cmd == "e") 
    { 
     // etc. 
+0

Не ответ на ваш вопрос, но если DDD не режет его для вас, вам может потребоваться взглянуть на отладчик insight по адресу http://sourceware.org/insight/ - это еще один интерфейс gdb , но более легкий, чем DDD. – 2010-02-09 10:24:21

+0

Хотя это не помогает, оно отлично работает для меня. –

ответ

0

Возможно, вы захотите использовать отладчик Nemiver. Он имеет вкладку gnome-console, где вы можете взаимодействовать с вашим приложением так же, как и делать это без отладчика.

http://www.gnome.org/projects/nemiver

0

Вы действительно должны использовать GDB. Попробуйте GUI Insight GDB. http://sourceware.org/insight/

+0

FYI, ddd - графический интерфейс gdb, как Insight. –

+0

Несмотря на это, удаление абстракции gui может иногда давать больший уровень контроля. Однако это зависит от gui. – TachyonImpact