调试Debug,可以逐步逐行的执行代码,查看汇编代码的寄存器状态,变量的值等更为详细的信息,方便排查错误。下文使用简单的GDB调试,对GDB调试的一个简单的使用。
调试步骤
- 进入调试
- 设置断点
- 运行
- 单步执行
- 查看寄存器信息
- 查看某个寄存器的值
- 离开调试
demo.s汇编文件,内容如下,生成demo可执行文件
section .data
section .text
global _main
_main:
mov eax, 1
inc eax
mov ebx, eax
mov eax, 1
mov ebx, 0
int 80h
gdb 可执行文件名称,例如demo
gdb demo
即可进入调试,进入之后,每行都会以(gdb)开头,剩下的命令在(gdb)里面执行
然后设置断点(break)
b _main
运行(run)
r
单步执行(next instruction)
nexti
查看寄存器状态(info registers)
i r
查看单个寄存器的值(print $register)
p $rax
默认打印十进制的值,也可以以其他进制输出
离开调试(quit)
q