2011-08-19 233 views
2

有沒有辦法如何管道內部gdb命令輸出到一些shell命令如grep - [cmd] ! grepmdb的變種?GDB - 管道輸出的內部命令到shell命令

要更清楚:在solaris mdb中,您可以例如寫

main::dis ! grep call 

檢測哪些功能從主要調用(或grep一些註冊名稱,看看它是如何改變)。我感興趣的是,如果在gdb中有這樣的可能性,而不需要從gdb切換。

+1

也許是時候開始尋找到Python腳本來定義新的命令:http://stackoverflow.com/questions/4060565/how-to-script-gdb-with-python-example-add- breakpoints-run-what-breakpoint-d :-) –

回答

4

我不確定是否正確理解了您的問題。如果您想要在調試會話期間運行的GDB命令的日誌結果,那麼從GDB開始支持。

show logging     # displays weather logging is on/off 
set logging on     # enable logging 
set logging off     # disable logging 
set logging file log-file.txt # set name for log file, default is gdb.txt 

日誌文件將在當前目錄中生成。

而且您可以附加調試會話日誌或使用

set logging overwrite <on/off> 
+0

謝謝你的回答。日誌記錄不完全是我正在尋找的。在Solaris mdb中,可以編寫例如'main :: dis! grep調用「,調試器將調用grep來處理拆分結果。我在gdb中尋找類似的方法 - 運行grease of dissasemble命令輸出(或者發送給less)。我可以使用例如objdump和grep它的結果,或者從你提到的日誌文件中獲得輸出,但是我有興趣知道是否有辦法在gdb中執行它。 – Michy

+1

不要忘記將分頁設置爲關閉。logging/shell命令是目前唯一的方法,例如設置日誌記錄,disas main,設置註銷,shell grep調用gdb.txt,有人正在處理管道命令,這可能會使這個更直接 – matt

-1

一個新的GDB的命令已經出臺,即管創建每個調試會話新。如果要使用某個shell命令或某個腳本處理GDB命令的輸出,可以使用這個新命令完成。

http://www.gdbenhanced.freewebsitehosting.com/

+0

感謝您的信息,這正是我錯過了。希望它能很快成爲官方發佈的一部分。 – Michy

+5

感謝鏈接已關閉... – sillyMunky