Linux之基础开发工具gdb调试器的使用(三)

文章目录


一、Linux调试器-gdb使用

1、安装gdb

yum install -y gdb


2、背景

  1. 程序的发布方式有两种,debug模式和release模式
  2. Linux gcc/g++出来的二进制程序,默认是release模式,release模式下无法调试
  3. 要使用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、范围查找

切换下一个断点

将函数运行结束

在一个指定范围内,运行到指定行

7、查看调用堆栈


总结

相关推荐
充电zcx3 分钟前
Linux:2:Linux下的基本指令
linux·运维·服务器
数安旭说11 分钟前
从“人治”到“平台化”:迪康端点安全一体化管理平台的任务协同实战
运维·数据安全·软件需求·企业管理·终端管理·终端安全·终端运维
handler0115 分钟前
【Linux】虚拟地址空间解析
linux·运维·c++·线程·进程·虚拟地址空间·虚拟地址
可视化运维管理爱好者42 分钟前
机房工勘记录器分享
运维·网络·nvisual
i网路游侠43 分钟前
免费堡垒机 | 福瑞智能运维审计系统(堡垒机)?
运维·堡垒机·等级保护·运维审计·运维安全审计
天外天-亮1 小时前
docker + window 安装
运维·docker·容器
User_芊芊君子1 小时前
让异构增量同步飞起来-KFS全链路并行同步方案
运维·自动化·ansible
进击的小菜鸡dd1 小时前
docker 容器的挂载映射关系查看
运维·docker·容器
海宇AI1 小时前
零信任架构实战:基于海宇风控黑名单构建自动化企业信贷网关
运维·人工智能·架构·自动化
虎头金猫1 小时前
Pic Smaller 本地部署:压缩图片、转换格式,再搭建自己的 Web 工具
运维·前端·开源·aigc·ai编程·ai写作