linux调试(gdb)基操


首先我们知道程序有两个版本:Release版本和Debug版本; Debug为调试版本,它包含调试信息,所以程序体积相对于Release版本比较大,并且不作任何优化,便于程序员调试程序。Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。
我们要在LINUX系统下调试程序首先就得生成Debug版本的程序;这需要在生成可执行程序时加上 -g 命令参数;
在这里插入图片描述
先看一下程序:

一个简单的测试函数

1.gdb调试可执行程序

第一部操作就是 : gdb [可执行程序]
人后就进入到了调试界面,如果之前没有加 -g 选项生成Debug版本这里就会出错
在这里插入图片描述

进入GDB调试界面之后的一些操作:
l (list) 查看程序
b 打断点
delete [断点序号] 删除指定断点
disable [断点序号] 使断点失效
enable[断点序号] 使断点生效
i b 查看断点信息

在这里插入图片描述

r run 运行程序
n next 逐语句运行,遇到函数会进入到函数内部逐语句运行
s step 逐过程运行
c continue 遇到下一个断点则停止
q 退出
p [变量名] 打印变量地址
b t 可查看函数调用的堆栈
f [堆栈序号] 跳转到一个具体的堆栈

在这里插入图片描述

2.gdb调试coredump文件

程序在调试崩溃后会产生内存镜像文件,保存程序崩溃时的一些数据。

产生coredump文件的条件:
1.Linux系统下需要设置core size 大小

	ulimit -c     查看大小
	ulimit -c  unlimited   设置大小为unlimited
  1. 内存空间足够
    在这里插入图片描述

在这里插入图片描述
gdb调试产生core dump文件
在这里插入图片描述然后使用各种命令调试即可。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值