2012-05-15 87 views
2

通常我在終端鍵入jdb開始調試java程序,然後進入調試模式,然後我可以輸入「停在com.android.contacts.dirtyImport.DirtyImportManager:95」之類的東西,告訴jdb停在某些線。如何將兩個命令合併到一個unix下?

現在,這裏是一個問題:我如何結合這兩個cmds輸入一個。像「jdb <停在com.android.contacts.dirtyImport.DirtyImportManager:95」。我有這個要求的原因是我想讓vim自動生成調試信息並進入調試模式,停止產生斷點。

回答

3

一種選擇是前面加上一個線到標準輸入:

{ echo "stop at com.android.contacts.dirtyImport.DirtyImportManager:95"; cat; } | jdb 

這將啓動子外殼({}),該第一打印給定的與echo線,然後讀取標準輸入,並打印所讀取的行標準輸出(cat)。整個輸入被輸入到jdb中。

然而,這混淆了一些區分終端輸入和管道輸入的程序。在這種情況下,您需要查看程序的參考,因爲調試器通常支持從文件執行命令(如gdb-x)。

+0

我可以加兩次這個答案嗎?你完全是一個天才。我有這麼長時間尋找這個答案。但是我仍然不知道'{'和貓用於什麼?你能給我任何提示嗎?因爲在我刪除你的命令的任何部分後,我不會像我希望的那樣運行。再次感謝你。 –

+0

@ user674199:謝謝。擴大了答案。 – thiton

0

我不確定,但您可能會考慮生成expect腳本。 Here is a tutorial,它自動執行gdb

相關問題