gdb调试工具的基本命令

gdb可以用来调试C和C++程序

gdb常用命令

gcc -Wall -g filename.c -o filename   //编译时需要加-g参数
gdb filename      //进入调试
l(list)    //显示代码
b(break)   //设置断点
bn         //在第n行设置断点
r(run)     //运行程序
n(next)    //下一步,但不进入函数,相当于VS中的F10
s(step)    //表示单步进入函数,相当于VS中的F11
p(print)   //p I 打印变量I
c(continue)  //运行到最后或者遇到新的断点
q(quit)     //退出

gdb调试命令列表

set args 运行时的参数    指定运行时的参数,如set args 2
show args   查看设置好的运行参数
show paths  查看程序的运行路径
pwd    显示当前工作目录
info b  查看所设断点
break[文件名:]行号或函数名 <条件表达式>   设置断点
tbreak[文件名:]行号或函数名 <条件表达式>   设置临时断点,到达后被自动删除
delete[断点号]     删除指定断点,其断点号为info b中的数值,若缺省断点号则删除所有断点
disable[断点号]    停止指定断点,使用info b仍能查看此断点。同delete一样,缺省断点号则停止所有断点
enable[断点号]     激活指定断点,即激活被disable停止的断点
condition[断点号]<条件表达式>   修改对应断点的条件
ignore[断点号]<NUM>      在程序执行过程中,忽略对应断点num次
finish               从当前函数中退出
list<行号>|<函数名>    查看指定位置代码
bt                    调用堆栈,可以查到调用哪些函数尚未返回

gdb调试段错误(Segmentation fault)
core文件中保存着程序崩溃的现场
针对段错误,可以通过ulimit -c unlimited设置core file size为不限制大小。
设置完毕后,可以通过ulimit -a进行查看,再次运行程序,就会产生core文件:
gcc -g test.c
./a.out
通过gdb可执行core文件,进行调试: gdb a.out core。
通过bt调用堆栈可以看到程序段错误时的现场,通过f1可以直接切换到程序现场。
查看程序运行过程中的内存:
x /20xb &arr
20为20个字节,x代表十六进制,b为一个字节形式,也可以将b换成w,每四个字节进行显示

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值