当前位置: 首页 > news >正文

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

文章目录

  • 一、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、背景

  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、查看调用堆栈

在这里插入图片描述


总结

在这里插入图片描述

在这里插入图片描述

http://www.lryc.cn/news/227403.html

相关文章:

  • advanced-css: No.1
  • 最新宝塔面板第三方云端站点程序源码/第三方宝塔面板PHP源码/全开源ThinkPHP框架
  • 【Unity之UI编程】玩法面板的实现
  • 栈和队列:栈
  • 由浅入深学习统计学 - 常用统计图形学习
  • 【java进阶】集合的三种遍历(迭代器、增强for、Lambda)
  • Qt实现动态桌面小精灵(含源码)
  • Qt 自定义分页控件
  • Java中的7大设计原则
  • Spring Cloud和Kubernetes + Spring Boot 用哪个?
  • web-worker 基本使用
  • SpringBoot使用@PropertySource读取 properties 配置
  • 100天精通风控建模(原理+Python实现)——第5天:风控建模中数据标准化是什么?
  • find和grep命令的简单使用
  • 力扣:164. 最大间距(Python3)
  • 游戏平台采集数据
  • CSS让两个标签在同一行显示并自适应宽度
  • Leetcode154. Find Minimum in Rotated Sorted Array II
  • 【分析思路】测试数据分析思路
  • 链表的实现(文末附完整代码)
  • asp.net core 获取服务实例的几种方式
  • 指标体系:洞察变化的原因
  • Dell戴尔灵越Inspiron 7700 AIO一体机电脑原厂预装Windows10系统
  • 系统架构主题之九:软件设计模式及其应用
  • Spring IoC注解式开发
  • 智能一体化管网水位监测仪怎么样?
  • 个人网厅——销户
  • 通过创建自定义标签来扩展HTML
  • Nacos热更新
  • CSS3 中 transition 和 animation 的属性分别有哪些