2010-04-15 36 views
3

我一直在用gcode使用XCode或Eclipse來輸入輸入信息。每當調試器擊中std::cin時,它看起來像在等待輸入,但未能接受它。我在互聯網上搜索了更多信息,但無法找到任何東西。無法用gdb輸入輸入。幫幫我!

我需要做些什麼才能讓cin與gdb一起使用?作爲參考,我使用XCode 3.2.2和Eclipse Galileo。

謝謝!

-Carlos Nunez

+0

什麼是你的GDB版本和環境? 它爲我在Cygwin與 GNU GDB 6.8.0.20080328-CVS(Cygwin的特殊) – 2010-04-20 07:04:56

回答

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()都會檢索最後一個輸入,即使您不鍵入一個鍵,也會輸入一個無限循環。

我不知道該怎麼角落找尋它的工作... :-(

+0

在Windows上用g ++和gdb完美工作 - 我可以設置斷點並仍然執行控制檯輸入。就像一個XCode問題 – 2010-05-02 14:07:38

+0

不,我剛剛嘗試了XCode,單獨使用Mac Terminal,我得到了同樣的結果。也許問題與Apple DGB發行版有關: GNU gdb 6.3.50-20050815(Apple版本gdb-1346)(Fri Sep 18 18 20:40:51 UTC 2009) – Pasky 2010-05-02 14:50:07

-2

使用XCode編程C++有時會很痛苦。嘗試包括你的源代碼,以便我們可以看到什麼是錯的。

+0

不知道爲什麼他們標記我-1 – flopex 2010-04-15 15:55:47

+2

也許這聽起來像是應該是一個評論,而不是一個答案 – clahey 2010-04-15 16:42:09