【Linux】开发工具之gdb调试器

news2024/11/24 3:34:28

目录

  • 🌈前言
  • 🌷1、debug与release
  • 🌸2、gdb选项

🌈前言

本篇文章进行调试器gdb的学习!!!


🌷1、debug与release

debug会生成需要调试的信息,release不会生成

  • 程序的发布方式有两种,分别是:debug模式和release模式

  • Linux中gcc/g++编译出来的二进制程序,默认是release模式

  • 使用gdb进行调试,需要编译出来的二进制程序是debug模式的,需要加-g选项

  • debug模式下的二进制程序是比release大的,多了调试的符号

在这里插入图片描述


🌸2、gdb选项

格式:gdb binFile(debug模式下的二进制可执行文件)

调试命令:

  • quit 或 ctrl + d:退出gdb调试

  • r 或 run:运行程序,遇到断点会停下来

  • list 或 l [行号]:显示binFile源代码,连续按回车,会接着上次显示的代码继续显示,每次十行

  • list 或 l [函数名]:列出某个函数的源代码

  • n 或 next:逐过程,跳过函数执行

  • s 或 step:逐语句,会进入函数调用

  • b 或 break [行号]:在某一行设置断点

  • b 或 break [函数名]:在某个函数开头设置断点

在这里插入图片描述

  • info b 或 break:查看已经打的断点的信息

  • p 变量:打印变量的值

  • set var:修改变量的值

  • display [变量名]:跟踪查看一个变量,每次停下来都显示它的值 (监视器)

  • undisplay [编号]:取消对先前设置的那些变量的跟踪

在这里插入图片描述

  • finish:执行当前函数返回,然后停下来等待信息

  • until X行号:跳至X行

  • continue 或 c:从当前位置开始连续而非单步执行程序(跳到下一个断点处)

在这里插入图片描述

  • breaktrace(或bt):查看各级函数调用及参数

  • delete breakpoints:删除所有断点

  • delete breakpoints [n]:删除序号为n的断点

  • disable breakpoints:禁用断点

  • enable breakpoints:启用断点

  • info 或 i [locals]:查看当前栈帧局部变量的值

在这里插入图片描述


如何理解:和windows IDE(vs2019Debug对应)

在这里插入图片描述


部分指令思维导图:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2265.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Node.js】模块的加载机制

✍️ 作者简介: 前端新手学习中。 💂 作者主页: 作者主页查看更多前端教学 🎓 专栏分享:css重难点教学 Node.js教学 从头开始学习 目录 模块的加载机制 优先从缓存中加载 内置模块的加载机制 自定义模块的加载机制 第三方模块的加载机…

2022年浙江省中职组“网络空间安全”赛项模块B--Linux系统渗透提权

2022年中职组浙江省“网络空间安全”赛项 B-3:Linux系统渗透提权一、竞赛时间 420分钟 共计7小时 吃饭一小时 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第①阶段: 单兵模式系统渗透测试 任务一: Windows操作系统渗透测试 任务二: Linux操作系统渗透测试 任务…

经典算法|水仙花数|自幂数

算法题目 水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位…

高精度RC振荡器的设计

1. 一些技术指标 应用于数字模拟混合信号芯片的高频率精度,高频率稳定度,全集成RC振荡器设计 由于数字电路指标仅与复杂度有关,此仅考虑模拟电路的设计指标。 项目Value电源电压2.5V~5.5V工作温度-40~125目标频率Ftyp 2MHZ频率精度&#x…

常用流媒体服务器

1、Mediasoup mediasoup是相对比较新的一个WebRTC服务器端的开源项目。它更多是通过集成包方式和其他应用服务器来集成。它支持SFU模式,主要支持视频聊天,媒体流广播等。 其特点是: 通过底层API实现和第三方集成,安装简单&#…

java自学第一天

1.1.体系: JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版) JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版) JavaME(J2ME)(Java 2 Platform Micro Edition&a…

如何提高代码交付效率,完成代码交付应用自动化?

为了提高代码交付效率,完成代码交付应用自动化,CoCode旗下Co-Project V2.5.0智能项目管理平台全新发布,新增CI/CD功能:Co-DevOps。 Co-DevOps是 CoCode 全新开发出的一项CI/CD功能,提供持续集成、持续交付(…

六轴工业机器人

连杆原理 符号中文名含义aaa连杆长度两个相邻关节轴之间的公垂线的长度α\alphaα连杆转角两个相邻关节间轴之间形成的角度,右手定则前一个轴到后一个轴ddd连杆偏距两个相邻连杆之间的距离,高度差θ\thetaθ关节角两个相邻杆绕公共关节轴旋转的角度 机…

TypeScript-01基础知识

目录 一、ts与es、js之间的关系 二、TypeScript与JavaScript之间的区别 三、安装TypeScript编译器 四、执行typescript的步骤 五、ts的数据类型 1、类型别名 2、接口 接口 与 类型别名 的区别 3、类型断言 4、文字类型 不常用枚举、bigint、symbol 六、类型缩小 1、…

Linux socket 编程 UDP

套接字:操作系统向上层提供的用于实现网络通信的统称 网络通信其实本质上就是两台主机之间的通信其中一段是客户端,另一端是服务器 客户端:用户的一端,客户端是主动发出请求的一端 服务端:针对用户请求提供服务的一端…

Linux 进程控制

🧑‍💻进程控制 🧑‍💻 文章目录🧑‍💻进程控制 🧑‍💻一、进程创建1. fork函数2. fork常规用法3. fork创建子进程操作系统都做了什么?4. 写时拷贝5. 父子进程代码的共享…

String(二)————迭代器及相关接口使用

目录 string构造接口(Construct string object) string的元素访问(读写) 迭代器 string构造接口(Construct string object) string相比于C语言的字符数组要好用的多,无论是在初始化还是在读写…

排序5:直接选择排序

目录 排序思想: 演示图: 代码实现 总结: 排序思想: 在元素集合array[i]--array[n-1]中选择关键码最大(小)的数据元素 若它不是这组元素中的最后一个(第一个)元素,则将它与这组元素中的最后一个(第一个…

SpringMVC---->自我实现底层机制(吃透springMVC)

目录 配套代码在资源中(免费) maven环境搭配 注解注入的规范: 一.开发HongDisptcherServlet前端控制器 1.说明: 2.配置web.xml文件 3.检查前期工作是否成功 二.完成客户端/浏览器请求控制层 1.创建 自己的 Controller 和…

【HTML+CSS+JS】模仿QQ登录界面

目录前言简介布局思路相关代码颜色渐变动画头像表单区域JS相关总结前言 学了HTML、CSS和JS有了一个月了,JS还未学完,偷懒写一个小项目,用了一个下午,顺便巩固一下所学知识。(内容比较简陋,适合新手&#x…

基于火鹰优化算法的函数寻优算法

文章目录一、理论基础1、火鹰优化算法2、FHO算法伪代码二、仿真实验与结果分析三、参考文献一、理论基础 1、火鹰优化算法 文献[1]提出了火鹰优化算法(Fire Hawk Optimizer, FHO)作为一种新的元启发式算法,该算法基于啸鸢、麻鹰和褐隼的觅食行为,这些鸟…

【网络原理】网络编程Socket套接字基础知识汇总

目录 1.网络初始: 2.网络编程: 3.UDP数据报套接字: 4.TCP流套接字: 1.网络初始: 局域网(LAN)广域网(WAN)IP地址用于定位主机的网络地址。端口号可以标识主机中发送数…

数据结构六:堆

前言:上一篇我们讲了二叉树,你知道吗?堆的底层是一棵完全二叉树。这样说会不会就会觉得熟悉了。 目录 1.堆的概念及存储方式 2:堆的创建 2.1:向下调整 3.堆的插入和删除 3.1:堆的插入 3.2:堆的删除 …

基于Web的商城后台管理系统的设计与实现

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

Oracle和MySQL查询所有的表信息和字段信息

Oracle和MySQL查询所有的表信息和字段信息1. MySQL1.1 查询表1.2 查询字段1.2.1 方式1->SHOW FULL COLUMNS1.2.2 方式2->information_schema.COLUMNS1.3 查表和字段1.4 查表和字段-->转程Oracle需要的数据类型2. Oracle2.1 查表和字段的单表查询2.2 整理查表和字段的s…