我正在試驗裝配。現在我在看一些簡單的C代碼,它是如何翻譯成裝配使用:查看堆棧上的內容
gcc -Wall -S -fno-asynchronous-unwind-tables -o test.s test.c -m32
我只是想知道是否有一些工具,可以讓您查看的內容是在棧上?我可以查看所有按下指令的彙編代碼,但是一些彙編指令(如call)會將東西壓入堆棧。
是否有任何工具可以更好地查看運行程序集或c代碼時堆棧究竟發生了什麼?
我正在試驗裝配。現在我在看一些簡單的C代碼,它是如何翻譯成裝配使用:查看堆棧上的內容
gcc -Wall -S -fno-asynchronous-unwind-tables -o test.s test.c -m32
我只是想知道是否有一些工具,可以讓您查看的內容是在棧上?我可以查看所有按下指令的彙編代碼,但是一些彙編指令(如call)會將東西壓入堆棧。
是否有任何工具可以更好地查看運行程序集或c代碼時堆棧究竟發生了什麼?
是的,你想要的是衆所周知的調試器gdb。你可以像運行程序,以便
GDB ./{program}
然後你就可以讓你的程序停止在特定點設置一個斷點。然後您可以使用各種命令檢查堆棧。
一種「視覺」的調試工具:Eclipse CDT的 當你在Eclipse CDT運行調試,你可以看到幾乎所有的東西很好地分類表中,沒有掙扎過可怕的GDB導航命令(但它的背最後是GDB)。堅韌,使用這個調試器仍然有點棘手。但Youtube和Google會爲您提供足夠的教程。
您的調試器會爲您提供這種可見性,並讓您在執行單個裝配指令時單步執行。 – mah
您正在尋找一個**調試器**,例如'gdb'。 – DCoder