Debugging 调试程序集

Debugging 调试程序集,debugging,assembly,cpu-registers,Debugging,Assembly,Cpu Registers,如何调试汇编代码?我使用Linux,手头有gdb。我知道我可以看收银机。调试汇编代码的方法有哪些?当然,您也可以像使用C或任何其他编译语言一样使用。稍微描述一下调试汇编程序的过程。使用gdb命令,您可以看到即将执行的汇编代码。这与观察寄存器一起,可以让您深入了解CPU的实际工作。当然,您可以使用nm命令和可执行elf文件的参数,它将显示带地址的可用标签。由此,您可以在特定地址上设置断点,然后使用“si”调试命令执行单个指令。谢谢。这正是我想要的。两个链接都断开了。您可以从GDB中获取symbol

如何调试汇编代码?我使用Linux,手头有gdb。我知道我可以看收银机。调试汇编代码的方法有哪些?

当然,您也可以像使用C或任何其他编译语言一样使用。稍微描述一下调试汇编程序的过程。

使用gdb命令,您可以看到即将执行的汇编代码。这与观察寄存器一起,可以让您深入了解CPU的实际工作。

当然,您可以使用nm命令和可执行elf文件的参数,它将显示带地址的可用标签。由此,您可以在特定地址上设置断点,然后使用“si”调试命令执行单个指令。

谢谢。这正是我想要的。两个链接都断开了。您可以从GDB中获取symbol->地址信息,而在运行进程的上下文之外获取地址甚至对可以使用ASLR的PIE可执行文件都不起作用。(默认情况下,对于从gdb内部启动的进程,gdb会禁用ASLR,但您可以附加到已经运行的进程并仍然获得符号。)无论如何,您可以
禁用my_func
,然后在函数内部的地址处设置断点,所有这些都可以从gdb内部进行。