Linux下强大的GDB

Linux下GDB调试常驻程序

 

不多说,不至于忘记,还是几下以下整理的流程。

>ps -ef|grep <pname>           得到需要调试的进程的pid

>gdb --pid  <pid>             <pid>为需要调试的进程的进程号

>bt                            backtrace简写,打印出栈的内容,显示将程序带到当前位置的函数调用和参数值

>frame <number>                <number>为bt打印出的栈的编号,使用frame来选择程序的调试起点,也可以使用break来选择指定的行或者函数来作为断点

>s                             单步执行

以上几步就可以debug系统的常驻进程了。

 

以下总结常用命令:

s:   单步执行,进入函数内部,相当于VS的F11

n:   单步执行,不进入函数内部,相当于VS的F10

c:执行到下一个断点,相当于VS的F5

l: 列出代码,后跟数字表示列出多少行

p  <var_name>:打印变量

p  <var_name>=<new_valaul>:改变变量的值 

b  <fun_name/line_number>: 设置断点

set  args <string>:设置命令行参数

set <var_name>=<new_valaul>:设置变量的值 

jump <line_number>:调到相应的行执行

x/NFU ADDR检查内存的指令x,x是examine的意思。用法如下:
其中N代表重复数,F代表出格式,U代表每个数据位的大小。U可以去如下
b
:字(byte)
h
:双字
w
:四字
g
:八字

F可以是以下的一些
'x' 16
制整数格
'd'
有符号十制整数格
'u'
无符号十制整数格9 k3 z6 M+ G8 O( B) q" ?4 j
'f'
浮点数格式4 k$ k. k,M& h* ?2 d5 ]
因此,上面的指令可以这样:从ADDR地址开始,以F格式NU。例如:x/4ub 0x4000
意思是以无符号十制整数格式(u)示四个字(b)0x40000x40010x40020x4003


参考1:http://blog.163.com/muren20062094@yeah/blog/static/161844416201152031826666/

参考2:http://blog.chinaunix.net/uid-21712186-id-1818222.html

参考3:http://tech.techweb.com.cn/thread-257101-1-1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值