基本上,據我所知,GDB調試過程中的asm代碼來自哪裏?
如果我們用GDB調試執行從C源代碼編譯的代碼, 編譯器將離開源代碼路徑在ELF/PE文件,所以 GDB將使用源代碼以方便我們的調試過程。
但是,GDB如何在上述過程中提供asm代碼信息呢?我給我的電腦上捕捉到的例子如下:
所以我的問題是:
- 如何GDB提供彙編代碼?這是反彙編生成的asm代碼嗎?
- 如果是這樣,那麼GDB如何保證拆卸的準確性? ,因爲我知道,像objdump的線性分解算法中無法區分代碼數據,像IDA Pro的商業工具,也可以使錯誤不時
任何人都可以給我一些幫助嗎?謝謝!
http://eli.thegreenplace.net/2011/02/07/how-debuggers-work-part-3-debugging-information/似乎涵蓋了很好的基礎知識。 – usr2564301
你*使用過* objdump嗎?它通常在從代碼中提取數據方面做得很好。 –
@KerrekSB嗨,我寫一個簡單的例子:https://gist.github.com/computereasy/8222328 – computereasy