朋友们、伙计们,我们又见面了,本期来给大家解读一下有关Linux调试器gdb的使用,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成!
C 语 言 专 栏:C语言:从入门到精通
数据结构专栏:数据结构
个 人 主 页 :stackY、
C + + 专 栏 :C++
Linux 专 栏 :Linux

目录
引言
每当我们写了一大堆的代码之后,信心满满的去编译运行,但是会发现要不就是出现了BUG,要不就是得到的结果与我们预期的结果不一样,因此需要对代码进行调试,逐语句、逐过程的来分析代码的问题,在之前使用的VScode中可以使用F10/ctrl + F10进行调试,那么在Linux中如何对代码进行调试呢?话不多说,直接开始!
1. 背景
如果一份代码要被调试,这份代码发布模式必须是Debug模式的。
在学习Linux调试工具之前我们先来了解一些Linux程序的一些特性:
- 程序的发布方式有两种,debug模式和release模式
- Linux gcc/g++出来的二进制程序,默认是release模式
如何证明呢?当我们直接使用gdb来调试一个程序的时候,会生成报错信息:
- 要使用gdb调试,必须更改为debug模式,在源代码生成二进制程序的时候, 加上 -g 选项
- 在debug发布的时候,一定要给可执行程序内部添加debug信息,否则程序无法调试;那么既然加了一些调试信息,我们就可以认为debug形成的可执行程序是大于release行程的可执行程序的:
- 我们在Linux中形成的可执行程序的格式都是ELF格式的。
- 在Linux中使用readelf -S 可执行程序,可以查看该可执行程序的二进制构成,那么就可以使用它搭配上grep来过滤一下可执行程序中的debug信息:
2. 开始使用
开始调试:gdb + 可执行程序





最低0.47元/天 解锁文章
307

被折叠的 条评论
为什么被折叠?



