一、启动运行gdb
$gdb movtest
二、设置断点
(gdb)break *_start+1
三、运行程序
(gdb) run
四、查看所有寄存器
(gdb)info register
五、查看单个寄存器
1、以10进制方式查看
(gdb)print $eax
2、以16进制方式查看
(gdb)print/x $eax
六、查看指令寄存器的内容
1、(gdb)print $eip
$5 = (void (*)()) 0x8048075 <_start+1>
2、(gdb)print/d $eip
$6 = 134512757
3、(gdb)print/x $eip
$7 = 0x8048075
七、查看栈
1、x/d $esp
2、x $esp
3、x $esp-4
在linux中,栈是向下增长的,所以查看栈的内容,需要从esp的地址+操作!
八、查看某变量的值
(gdb)print/x values
(gdb)print values
或者:x/x &values
九、查看某变量的地址
(gdb)print/x &values
或者:x/d &values+1 (可用于查看数组中的数据)
(gdb)x/34d &values
查看从values 开始的34个4字节数,按照10进制显示
x/32b &values //按照字节显示
x/4a $esp
十、查看字符串的数据。
x/32xb &values //显示为字符串,并表示为字符!