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

Linux之基础开发工具gdb调试器的使用(三)_第1张图片
Linux之基础开发工具gdb调试器的使用(三)_第2张图片

2、背景

  1. 程序的发布方式有两种,debug模式和release模式
  2. Linux gcc/g++出来的二进制程序,默认是release模式,release模式下无法调试
  3. 要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项

release模式下的gdb演示,无法调试

Linux之基础开发工具gdb调试器的使用(三)_第3张图片

加上 -g 选项,显然成功

Linux之基础开发工具gdb调试器的使用(三)_第4张图片
Linux之基础开发工具gdb调试器的使用(三)_第5张图片

3、Debug和release

Debug形成的可执行程序会给我们增加调试信息,内存变大,而release形成的可执行程序会给我们去掉调试信息,内存变小。
而用户不需要调试信息,他们需要更快的下载和安装,所以有了Dubug和release两个版本

4、区分Debug和release

release下的可执行程序

在这里插入图片描述>Debug下的可执行程序

在这里插入图片描述

最直观区分

Linux之基础开发工具gdb调试器的使用(三)_第6张图片


二、Linux调试器-gdb命令演示

1、显示指定行之后的代码(自动记录最后一条指令)

想显示更多代码需 l+行号 然后一直回车
Linux之基础开发工具gdb调试器的使用(三)_第7张图片

2、断点

1、打印断点

打印断点一共三种方式,接下来一一介绍。

b+行号

在这里插入图片描述

b+函数名+行号
在这里插入图片描述

b+文件名+行号(适用于多文件下)

在这里插入图片描述

2、查看断点

Linux之基础开发工具gdb调试器的使用(三)_第8张图片

3、删除断点

注意在删除断点中,显示的是编号,而不是行号。
Linux之基础开发工具gdb调试器的使用(三)_第9张图片

4、使能(禁用/开启)断点

禁用

Linux之基础开发工具gdb调试器的使用(三)_第10张图片

开启

Linux之基础开发工具gdb调试器的使用(三)_第11张图片

3、直接运行结束

Linux之基础开发工具gdb调试器的使用(三)_第12张图片

4、逐过程(f10)、逐语句(f11)

逐过程

Linux之基础开发工具gdb调试器的使用(三)_第13张图片

逐语句

Linux之基础开发工具gdb调试器的使用(三)_第14张图片

5、显示内容

只显示一次

Linux之基础开发工具gdb调试器的使用(三)_第15张图片

常显示

Linux之基础开发工具gdb调试器的使用(三)_第16张图片

取消常显示

Linux之基础开发工具gdb调试器的使用(三)_第17张图片

6、范围查找

切换下一个断点

Linux之基础开发工具gdb调试器的使用(三)_第18张图片

将函数运行结束

Linux之基础开发工具gdb调试器的使用(三)_第19张图片

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

Linux之基础开发工具gdb调试器的使用(三)_第20张图片

7、查看调用堆栈

在这里插入图片描述


总结

Linux之基础开发工具gdb调试器的使用(三)_第21张图片

Linux之基础开发工具gdb调试器的使用(三)_第22张图片

你可能感兴趣的:(Linux操作系统,linux,服务器,运维)