在做拆炸彈實驗的時候,我想把反匯編出來的各個段的代碼存入文件,這樣比較方便查看——我可以再開一個終端,打開文件看匯編代碼,然后在原來的終端里繼續調試。objdump可以重定向標准輸出或者直接使用管道,但是gdb里面不支持,它會這樣~
它會告訴你:“Attempt to extract a component of a value that is not a structure.”,就是gdb里面沒有這玩意兒,沒法用。
到網上搜了一下,然后看到3、4行set xxxx的,還是把gdb的所有輸出都弄到一個文件里
如果能把各段分離出來,4行命令我也就認了,仍然是直接吞了gdb的所有輸出,我為嘛直接在gdb后面加管道呢?
於是,我試了一下直接加管道:
它直接將我后面的文件名當作了命令,仔細想了想,確實會這樣,畢竟管道就是連接命令的,那就重定向輸出好了,於是:
所有輸出就看不到了,我只能盲打命令,這顯然不是我想要的,我想要既能看到它的輸出,又將我后面匯編的代碼存入文件。想到這兒,解決方法就出來了——用tee分離輸出:
Nice~~
再看一下輸出的文件好了:
打開發現,多了一堆東西,刪了就行了~
以上操作挺繁瑣的,但也是確實實現了我要干的事情,就很Nice~