文章目录
- 一、Linux调试器-gdb使用
- 1、安装gdb
- 2、背景
- 3、Debug和release
- 4、区分Debug和release
- 二、Linux调试器-gdb命令演示
- 1、显示指定行之后的代码(自动记录最后一条指令)
- 2、断点
- 1、打印断点
- 2、查看断点
- 3、删除断点
- 4、使能(禁用/开启)断点
- 3、直接运行结束
- 4、逐过程(f10)、逐语句(f11)
- 5、显示内容
- 6、范围查找
- 7、查看调用堆栈
- 总结
一、Linux调试器-gdb使用
1、安装gdb
yum install -y gdb
2、背景
- 程序的发布方式有两种,debug模式和release模式
- Linux gcc/g++出来的二进制程序,默认是release模式,release模式下无法调试
- 要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项
release模式下的gdb演示,无法调试
加上 -g 选项,显然成功
3、Debug和release
Debug形成的可执行程序会给我们增加调试信息,内存变大,而release形成的可执行程序会给我们去掉调试信息,内存变小。
而用户不需要调试信息,他们需要更快的下载和安装,所以有了Dubug和release两个版本
4、区分Debug和release
release下的可执行程序
>Debug下的可执行程序
最直观区分
二、Linux调试器-gdb命令演示
1、显示指定行之后的代码(自动记录最后一条指令)
想显示更多代码需 l+行号 然后一直回车
2、断点
1、打印断点
打印断点一共三种方式,接下来一一介绍。
b+行号
b+函数名+行号
b+文件名+行号(适用于多文件下)
2、查看断点
3、删除断点
注意在删除断点中,显示的是编号,而不是行号。
4、使能(禁用/开启)断点
禁用
开启
3、直接运行结束
4、逐过程(f10)、逐语句(f11)
逐过程
逐语句
5、显示内容
只显示一次
常显示
取消常显示
6、范围查找
切换下一个断点
将函数运行结束
在一个指定范围内,运行到指定行