Linux组件:gdb

我们在写代码的时候,有时候需要跟进程序的运行改正错误或者找到隐藏的错误,这叫调试

我们在vs等集成开发环境调试都很方便,比如按快捷键F5直接调试,F10逐过程调试--不进函数,F11逐语句调试--进函数,F9创建断点

在Linux下我们同样可以完成对代码的调试:使用gdb程序也是有版本的

Debug模式是开发模式,可被调试;Release模式是发布模式,不可被调试。

 首先使用makefile生成一个debug文件:

​这两种模式有什么区别?其中程序C编译时默认生成的是release版本,debug版本相对于release版本新增了调试信息。

可以看出debug的版本比release的版本所占内存大得多,也反向证明了debug相对于release版本增加了调试信息。

为什么会有这样的差异?是因为使用角色的不同。

用户使用程序和程序员使用程序是不一样的。用户是程序的使用者,他不需要知道如何调试,只要会执行就可以,多放调试信息还会占用空间,但程序员是开发者,必须知道调试信息来调试、来开发、来找到bug来修改bug。

查看debug版本下的调试信息

readelf -S processbar-debug

刷了好多页,这里只放一页展示

其中:

.rodata:只读区

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值