我正在试验装配。现在我在看一些简单的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