2010-04-15 5 views
3

У меня было трудное время ввода ввода с помощью gdb с помощью XCode или Eclipse. Каждый раз, когда отладчик достигает std::cin, он выглядит как ожидающий ввода, но не принимает его. Я заглянул в интернет за дополнительной информацией, но у меня проблемы с поиском чего-либо.Невозможно ввести ввод с помощью gdb. Помогите!

Что нужно сделать, чтобы получить cin для работы с gdb? Для справки, я использую XCode 3.2.2 и Eclipse Galileo.

Спасибо!

-Carlos Нуньес

+0

Какова ваша версия GDB и окружающая среда? Это работает для меня на Cygwin с GNU GDB 6.8.0.20080328-CVS (Cygwin специальный) –

ответ

1

Я предполагаю, что в GCC есть ошибка, связанная с использованием std :: cin и установочных/снятий точек останова. Я сделал минимальный пример:

#include <iostream> 
#include <string> 
using namespace std; 

int main(int argc, char* argv[]) 
{ 
    string option = "x"; 
    while (option != "q") 
    { 
     cout << endl 
     << "0 = Stop" << endl 
     << "1 = Play" << endl 
     << "q = Quit" << endl; 

     getline(cin, option); 
     cout << "You choosed " << option << endl; 
    } 
} 

Этот код работает отлично до тех пор, пока не будут установлены или активировать контрольную точку (по крайней мере, с помощью XCode оболочки). С этого момента stdin-буфер прерывается, и каждый getline() извлекает последний вход, даже если вы не вводите ключ, входя в бесконечный цикл.

Я не знаю, как работать Arround это ... :-(

+0

Работает отлично для меня с g ++ и gdb на окнах - я могу установить контрольные точки и все еще выполнять консольный ввод. как проблема с XCode. – 2010-05-02 14:07:38

+0

Нет, я только что попробовал это из XCode, используя только один терминал Mac, и я получил тот же результат. Возможно, проблема связана с распределением Apple DGB: GNU gdb 6.3.50-20050815 (версия для Apple gdb-1346) (пт 18 сен 20:40:51 UTC 2009) – Pasky

-2

Программирование C++ с помощью XCode иногда может быть боль. Попробуйте включить исходный код, чтобы мы могли понять, что не так.

+0

Удивительно, почему они отмечают меня. – flopex

+2

Возможно, это звучит как что-то, что должно было быть комментарием вместо ответа. – clahey

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