一、启动运行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 //显示为字符串,并表示为字符!

相关文章:

  • 2022-02-19
  • 2022-03-12
  • 2022-12-23
猜你喜欢
  • 2021-11-01
  • 2021-11-24
  • 2022-12-23
  • 2021-11-16
  • 2021-05-19
相关资源
相似解决方案