GDB Tips
1. 查看寄存器
(gdb) i r
(gdb) i r a # 查看所有寄存器(包括浮点、多媒体)
(gdb) i r esp
(gdb) i r pc
2. 查看内存
(gdb) x /wx 0×80040000 # 以16进制显示指定地址处的数据
(gdb) x /8x $esp
(gdb) x /16x $esp+12
(gdb) x /16s 0×86468700 # 以字符串形式显示指定地址处的数据
(gdb) x /24i 0×8048a51 # 以指令形式显示指定地址处的数据(24条)
3. 修改寄存器的值
(gdb) set $v0 = 0×004000000
(gdb) set $epc = 0xbfc00000
4. 修改内存的值
(gdb) set {unsigned int}0×8048a51=0×0
(gdb) set *(unsigned int*)0×8048a54=0×55aa55aa
5. 内存搜索
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
end
set $ptr = $ptr + 4
end
end
6. 断点、监测点
(gdb) b *0×80400000
(gdb) watch *(unsigned int *)0xbffff400==0×90909090
(转: http://hi.baidu.com/comcat/blog/item/c51313105b1bed05203f2ea6.html)
If you enjoyed this post, make sure you subscribe to my RSS feed!









No Comments, Comment or Ping
Reply to “GDB Tips”
You must be logged in to post a comment.