GDB 调试命令

  • 修改汇编指令语体为intel
    在gdb中 set disassembly-flavor intel

  • 修改OBJDUMP语体
    objdump -M intel -D a.exe

  • 查看寄存器
  • (gdb) i r
    (gdb) i r a # 查看所有寄存器(包括浮点、多媒体)
    (gdb) i r esp
    (gdb) i r pc

    (gdb) x /wx 0x80040000 # 以16进制显示指定地址处的数据
    (gdb) x /8x esp (gdb) x /16x esp+12
    (gdb) x /16s 0x86468700 # 以字符串形式显示指定地址处的数据
    (gdb) x /24i 0x8048a51 # 以指令形式显示指定地址处的数据(24条)

  • 修改寄存器的值
  • (gdb) set $v0 = 0x004000000

    (gdb) set $epc = 0xbfc00000

  • 修改内存的值
  • (gdb) set {unsigned int}0x8048a51=0x0
    (gdb) set (unsigned int )0x8048a54=0x55aa55aa

    Usage: find <start> <end> <count> <value>

(gdb) define find                             
set $ptr = $arg0
set $cnt = 0
while ( ($ptr<=$arg1) && ($cnt<$arg2) )
    if ( *(unsigned int *)$ptr == $arg3 )
        x /wx $ptr
        set $cnt = $cnt + 1
    set $ptr = $ptr + 4
  • 断点、监测点