有沒有辦法如何管道內部gdb命令輸出到一些shell命令如grep
- [cmd] ! grep
mdb
的變種?GDB - 管道輸出的內部命令到shell命令
要更清楚:在solaris mdb
中,您可以例如寫
main::dis ! grep call
檢測哪些功能從主要調用(或grep一些註冊名稱,看看它是如何改變)。我感興趣的是,如果在gdb中有這樣的可能性,而不需要從gdb切換。
有沒有辦法如何管道內部gdb命令輸出到一些shell命令如grep
- [cmd] ! grep
mdb
的變種?GDB - 管道輸出的內部命令到shell命令
要更清楚:在solaris mdb
中,您可以例如寫
main::dis ! grep call
檢測哪些功能從主要調用(或grep一些註冊名稱,看看它是如何改變)。我感興趣的是,如果在gdb中有這樣的可能性,而不需要從gdb切換。
我不確定是否正確理解了您的問題。如果您想要在調試會話期間運行的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>
謝謝你的回答。日誌記錄不完全是我正在尋找的。在Solaris mdb中,可以編寫例如'main :: dis! grep調用「,調試器將調用grep來處理拆分結果。我在gdb中尋找類似的方法 - 運行grease of dissasemble命令輸出(或者發送給less)。我可以使用例如objdump和grep它的結果,或者從你提到的日誌文件中獲得輸出,但是我有興趣知道是否有辦法在gdb中執行它。 – Michy
不要忘記將分頁設置爲關閉。logging/shell命令是目前唯一的方法,例如設置日誌記錄,disas main,設置註銷,shell grep調用gdb.txt,有人正在處理管道命令,這可能會使這個更直接 – matt
一個新的GDB的命令已經出臺,即管創建每個調試會話新。如果要使用某個shell命令或某個腳本處理GDB命令的輸出,可以使用這個新命令完成。
感謝您的信息,這正是我錯過了。希望它能很快成爲官方發佈的一部分。 – Michy
感謝鏈接已關閉... – sillyMunky
也許是時候開始尋找到Python腳本來定義新的命令:http://stackoverflow.com/questions/4060565/how-to-script-gdb-with-python-example-add- breakpoints-run-what-breakpoint-d :-) –