写在前面
妈妈再也不用担心我离开$IDE$就不会敲代码啦!
对于$gdb$功能的基础介绍
- 设置断点
- 逐行执行代码
- 查看变量的值
基础使用
首先我们在$gcc$程序的时候需要添加$-g$选项
1 | //本文仍以test.c为例 |
此时生成的$test$便可通过$gdb$调试辣!
我们执行
1 | gdb test |
会发现出现了多行信息,只需要添加$-q$,世界会瞬间变得清净起来。
踏入了$gdb$的世界,下面让我们来具体学习一下操作吧!
1 | file 文件名 //装载文件,如果是直接gdb进入而没有附加文件,则调试前需要装载文件 |
上面便是我们常用的$gdb$的基本操作辣!
你是不是还有一个疑问呢?如果发生段错误(内存错误)我们怎么知道是哪里出了问题呢?
这就涉及到一个新的知识点。
利用$gdb$和$core dump$快速定位段错误
内存错误的程序通常会崩溃掉,即$coredum$(核心转储),这时候会有一个镜像文件留存下来,即$core$,我们可以从其中找到内存错误的代码片段。
比如这段错误的代码。
1 |
|
运行后,结果为
去同目录下找$core$文件,可能会找不到,因为默认空间设置为0,我们给空间设置为1000。
即执行
1 | ulimit -c 1000 |
然后执行
1 | gdb -q err core |
会得到
我们通过$bt$命令便可以查看错误的点的信息(具体行数)
如图所示
以上。