2017-04-19 60 views
1

所以我想用gdb中的文件內容作爲參數運行程序。然後,當EOF被擊中時,我希望能夠再次輸入用戶輸入。對於終端中的普通程序,我可以用下面的命令做這樣的事情。將文件輸入和stdin傳遞給gdb

(cat input.txt; cat) | ./program 

在gdb中我可以通過在這樣的文件參數,但它繼續進入新行文件的末尾已到達後,直到永遠。

(gdb) run < input.txt 

這是幾乎一樣,如果標準輸入不回傳給程序,類似於如果我簡單地做

(cat input.txt) | ./program 

沒有第二cat會發生什麼。這甚至有可能在gdb中做?

回答

1

您可以在一個控制檯中運行程序,並在等待輸入時使用gdb從另一個控制檯連接到另一個控制檯。因此,您將能夠在第一個控制檯中輸入程序輸入並在第二個控制檯中進行調試。

+0

我以前做過這個。它確實有效,我只是想知道是否有可能沒有2個終端。這是一個確認,它不能完全在gdb內完成嗎? – thedevelop3r

+0

我想你也可以將用戶輸入保存到第二個文件,並將其與'input.txt'連接起來,並完全在gdb中完成。就像這個問題http://stackoverflow.com/q/13104206/72178。 – ks1322

+0

這就是我之後無法接受用戶輸入的問題。你的答案適合我。我只是想接受它。 – thedevelop3r

相關問題