Linux基础开发工具之调试器gdb

文章目录

  • 1.编译成的可调试的debug版本
    • 1.1gcc test.c -o testdebug -g
    • 1.2readelf -S testdebug | grep -i debug
  • 2.调试指令
    • 2.0quit退出
    • 2.1list/l/l 数字: 显示代码
    • 2.2run/r运行
    • 2.3断点相关
      • 1. break num/b num: 设置
      • 2. info b: 查看
      • 3. d index: 删除
      • 4. n: F10逐过程
      • 5. p + 变量名: 调试过程显示变量信息
      • 6. step/s : F11:逐语句
      • 7. bt: 调用堆栈
      • 8. finish: 运行完成当前函数 并返回调用此函数的位置
      • 9. display + 变量名: 显示变量的值直到他被取消
      • 10. undisplay + 编号: 取消常显示
      • 11.until + num: 跳转到指定行 (当前栈帧)
      • 12.continue/c: 运行至下一个断点停止
      • 13. disable + 编号: 禁用当前断点
      • 13. enable + 编号: 取消禁用当前断点
      • 14. set var i = 100: 改变变量值

1.编译成的可调试的debug版本

1.1gcc test.c -o testdebug -g

gcc && g++ 默认形成的可执行程序是release版本 ---- 无法直接被调试
在这里插入图片描述

1.2readelf -S testdebug | grep -i debug

readelf 用于读取 ELF(Executable and Linkable Format)格式文件的详细信息,包括目标文件、可执行文件、共享目标文件与核心转储文件。
在这里插入图片描述

2.调试指令

2.0quit退出

退出

2.1list/l/l 数字: 显示代码

可视化差

在这里插入图片描述

从第一行开始显示

在这里插入图片描述

这里是引用

2.2run/r运行

≈ F5 若没有断点 则直接运行结束

2.3断点相关

1. break num/b num: 设置

在num行打断点

2. info b: 查看

3. d index: 删除

index: 断点的编号
在这里插入图片描述

4. n: F10逐过程

5. p + 变量名: 调试过程显示变量信息

6. step/s : F11:逐语句

7. bt: 调用堆栈

8. finish: 运行完成当前函数 并返回调用此函数的位置

9. display + 变量名: 显示变量的值直到他被取消

10. undisplay + 编号: 取消常显示

11.until + num: 跳转到指定行 (当前栈帧)

12.continue/c: 运行至下一个断点停止

13. disable + 编号: 禁用当前断点

断点仍然还存在 只不过禁用 Enb状态变为n(no)

13. enable + 编号: 取消禁用当前断点

Enb状态变为y(yes)

14. set var i = 100: 改变变量值

调试过程中 改变已有变量i的值

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

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

相关文章

Java必刷入门递归题×5(内附详细递归解析图)

目录 1.求N的阶乘 2.求12...N的和 3.顺序打印数字的每一位 4.求数字的每一位之和 5.求斐波拉契数列 1.求N的阶乘 (1)解析题目意思 比如求5的阶乘,符号表示就是5!;所以5!5*4*3*2*1我们下面使用简单的…

SSM图书管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点 SSM 图书管理系统是一套完善的信息系统,结合springboot框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和 数据库,系统主要…

Linux-Docker的基础命令和部署code-server

1.安装docker 1.安装需要的安装包 yum install -y yum-utils2.设置镜像仓库 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo3.安装docker yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin do…

多彩的树 -----题解(状压dp + 容斥原理)

目录 多彩的树 题目描述 输入描述: 输出描述: 输入 输出 思路解析: 代码实现: 多彩的树 时间限制:C/C 5秒,其他语言10秒 空间限制:C/C 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 …

【Springboot】Vue3-Springboot引入JWT实现登录校验以及常见的错误解决方案

文章目录 前言一、JWT简单介绍二、token校验设计思路三、使用步骤Springboot部署JWT引入依赖:创建登录实体类后端:LoginController.java路由守卫函数 四、问题 前言 项目版本: 后端: Springboot 2.7、 Mybatis-plus、Maven 3.8.1…

C/C++轻量级并发TCP服务器框架Zinx-游戏服务器开发004:游戏核心消息处理 - 玩家类的实现

文章目录 0 代码仓库1 需求2 AOI设计2.1 AOI算法简介2.2 AOI数据结构及实现2.2.1 玩家2.2.2 网格对象2.2.3 游戏世界矩形2.2.4 获取周围玩家的实现2.2.5 代码测试 2.3 GameRole结合AOI创建玩家2.3.1 创建游戏世界全局对象-GameRole继承AOIWorld的Player2.3.2 把玩家到游戏世界的…

1.docker linux离线环境安装 20.1.0.12

目录 概述下载解压docker 卸载docker 安装检查安装环境常用命令结束 概述 docker离线环境安装 20.1.0.12 , centos 7.x 下载 安装包下载 解压 [roothadoop01 soft]# unzip docker_20_1_0_12.zip [roothadoop01 soft]# cd docker_20_1_0_12 [roothadoop01 docker_20_1_0_1…

数据结构:树的基本概念(二叉树,定义性质,存储结构)

目录 1.树1.基本概念1.空树2.非空树 2.基本术语1.结点之间的关系描述2.结点、树的属性描述3.有序树、无序树4.森林 3.树的常考性质 2.二叉树1.基本概念2.特殊二叉树1.满二叉树2.完全二叉树3.二叉排序树4.平衡二叉树 3.常考性质4.二叉树的存储结构1.顺序存储2.链式存储 1.树 1.…

亚马逊云AI应用科技创新下的Amazon SageMaker使用教程

目录 Amazon SageMaker简介 Amazon SageMaker在控制台的使用 模型的各项参数 pytorch训练绘图部分代码 Amazon SageMaker简介 亚马逊SageMaker是一种完全托管的机器学习服务。借助 SageMaker,数据科学家和开发人员可以快速、轻松地构建和训练机器学习模型&#…

ARM寄存器及功能介绍/R0-R15寄存器

1、ARM 寄存器组介绍 ARM 处理器一般共有 37 个寄存器,其中包括: (1) 31 个通用寄存器,包括 PC(程序计数器)在内,都是 32 位的寄存器。 (2) 6 个状态寄存器…

服务号如何升级订阅号

服务号和订阅号有什么区别?服务号转为订阅号有哪些作用?首先我们要知道服务号和订阅号有什么区别。服务号侧重于对用户进行服务,每月可推送4次,每次最多8篇文章,发送的消息直接显示在好友列表中。订阅号更侧重于信息传…

通信信道:无线信道中衰落的类型和分类

通信信道:无线信道中衰落的类型和分类 在进行通信系统仿真时,简单的情况下选择AWGN信道,但是AWGN信道和真是通信中的信道相差甚远,所以需要仿真各种其他类型的信道,为了更清楚理解仿真信道的特点,首先回顾…

linux安装并配置git连接github

git安装 sudo apt-get install git git信息配置 git config --global uer.name "yourname" git config --global user.email "youremail" 其中,yourname是你在github上配置的用户名,youremail是你在github上设置的邮箱 查看git…

Apinto 网关进阶教程,使用 API Mock 生成模拟数据

什么是 API Mock ? API Mock 是一种技术,它允许程序员在不依赖后端数据的情况下,模拟 web服务器端 API 的响应。通常使用 API Mock 来测试前端应用程序,而无需等待后端程序构建完成。API Mock 可以模拟任何 HTTP 请求方法&#x…

谷歌提出 AGI 完整路线图:目前 ChatGPT 只处于 AGI 的第一阶段

本心、输入输出、结果 文章目录 谷歌提出 AGI 完整路线图:目前 ChatGPT 只处于 AGI 的第一阶段前言谷歌 DeepMind 发布 AGI 分级框架发展 AGI 必须遵循6个基本原则什么是AGI图灵测试详解六大原则AGI 的五大发展过程阶段原文参考弘扬爱国精神谷歌提出 AGI 完整路线图:目前 Cha…

LeetCode(7)买卖股票的最佳时机【数组/字符串】【简单】

目录 1.题目2.答案3.提交结果截图 链接: 121. 买卖股票的最佳时机 1.题目 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票…

基于Python+Django的图书管理系统

项目介绍 图书是人类文明传播的一个重要方式,很多历史悠久的文明都是通过图书来进行传递的,虽然随着时代的进步电子信息技术发展很快,但是纸质图书的地位仍然是非常稳固的,为了能够让知识拥有更加快捷方便的传递方式我们开发了本…

CSS注入的四种实现方式

目录 CSS注入窃取标签属性数据 简单的一个实验: 解决hidden 方法1:jsnode.js实现 侧信道攻击 方法2:对比波兰研究院的方案 使用兄弟选择器 方法3:jswebsocket实现CSS注入 实验实现: 方法4:window…

centos7下安装主从仲裁三台结构的MongoDB 7.0.4

安装手册英文版在这里 https://www.mongodb.com/docs/v7.0/tutorial/install-mongodb-on-red-hat/ 我的安装过程 1)基础安装 1、创建 /etc/yum.repos.d/mongodb-org-7.0.repo文件 下面的代码复制到这个文件中,保存 [mongodb-org-7.0] nameMongoDB Re…

大模型+人形机器人,用AI唤起钢筋铁骨

《经济参考报》11月8日刊发文章《多方布局人形机器人赛道,智能应用前景广》。文章称,工信部日前印发的《人形机器人创新发展指导意见》,按照谋划三年、展望五年的时间安排,对人形机器人创新发展作了战略部署。 从开发基于人工智能大模型的人…