(转)GDB Tips

    技术2024-07-06  66

    http://hi.baidu.com/comcat/blog/item/c51313105b1bed05203f2ea6.html

     

    1. 查看寄存器(gdb) i r(gdb) i r a                     # 查看所有寄存器(包括浮点、多媒体)(gdb) i r esp(gdb) i r pc2. 查看内存(gdb) x /wx 0x80040000    # 以16进制显示指定地址处的数据(gdb) x /8x $esp(gdb) x /16x $esp+12(gdb) x /16s 0x86468700   # 以字符串形式显示指定地址处的数据(gdb) x /24i 0x8048a51      # 以指令形式显示指定地址处的数据(24条)3. 修改寄存器的值(gdb) set $v0 = 0x004000000(gdb) set $epc = 0xbfc000004. 修改内存的值(gdb) set {unsigned int}0x8048a51=0x0(gdb) set *(unsigned int*)0x8048a54=0x55aa55aa5. 内存搜索Usage: find <start> <end> <count> <value>(gdb) define find                             set $ptr = $arg0set $cnt = 0while ( ($ptr<=$arg1) && ($cnt<$arg2) )    if ( *(unsigned int *)$ptr == $arg3 )        x /wx $ptr        set $cnt = $cnt + 1    end    set $ptr = $ptr + 4endend6. 断点、监测点(gdb) b *0x80400000(gdb) watch *(unsigned int *)0xbffff400==0x90909090

    最新回复(0)