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

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的值

相关文章:

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

文章目录 1.编译成的可调试的debug版本1.1gcc test.c -o testdebug -g1.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 变量名…...

Apache APISIX 的 Admin API 默认访问令牌漏洞(CVE-2020-13945)漏洞复现

漏洞描述 Apache APISIX 是一个动态、实时、高性能的 API 网关。Apache APISIX 有一个默认的内置 API 令牌,可用于访问所有 admin API,通过 2.x 版本中添加的参数导致远程执行 LUA 代码。 漏洞环境及利用 启动docker环境 访问9080端口 通过 admin api…...

Clickhouse学习笔记(3)—— Clickhouse表引擎

前言: 有关Clickhouse的前置知识详见: 1.ClickHouse的安装启动_clickhouse后台启动_THE WHY的博客-CSDN博客 2.ClickHouse目录结构_clickhouse 目录结构-CSDN博客 Cickhouse创建表时必须指定表引擎 表引擎(即表的类型)决定了&…...

WebSocket是什么以及其与HTTP的区别

新钛云服已累计为您分享774篇技术干货 HTTP协议 HTTP是单向的,客户端发送请求,服务器发送响应。举个例子,当用户向服务器发送请求时,该请求采用HTTP或HTTPS的形式,在接收到请求后,服务器将响应发送给客户端…...

Flutter 实战:构建跨平台应用

文章目录 一、简介二、开发环境搭建三、实战案例:开发一个简单的天气应用1. 项目创建2. 界面设计3. 数据获取4. 实现数据获取和处理5. 界面展示6. 添加动态效果和交互7. 添加网络错误处理8. 添加刷新功能9. 添加定位功能10. 添加通知功能11. 添加数据持久化功能 《F…...

Python中68个内置函数的使用与归类

前言 在Python解释器中内置的、可以直接使用的函数。这些函数不需要额外的导入或安装,可以直接在Python代码中调用。Python内置函数包括了很多常用的功能,比如对数据类型的操作、数学运算、字符串处理、文件操作等。一些常见的内置函数包括print()、len…...

AGV無人搬送車控制系统Pytorn

import tkinter as tk import Main import monitoring # メインウィンドウを作成 root tk.Tk() root.title("AGV無人搬送車控制系统 ver1.0.0") # ウィンドウサイズを固定 root.geometry("501x340") root.resizable(False, False) # サイズ変更を…...

使用MVS-GaN HEMT紧凑模型促进基于GaN的射频和高电压电路设计

标题:Facilitation of GaN-Based RF- and HV-Circuit Designs Using MVS-GaN HEMT Compact Model 来源:IEEE TRANSACTIONS ON ELECTRON DEVICES(19年) 摘要—本文阐述了基于物理的紧凑器件模型在研究器件行为细微差异对电路和系统…...

Android13分享热点设置安全性为wpa3

Android13分享热点设置安全性为wpa3 文章目录 Android13分享热点设置安全性为wpa3一、前言热点WPA3加密类型是需要底层硬件支持的。Wifi WPA3 和 热点 WPA3 是不一样的分享初衷 二、代码分析1、应用代码中热点设置WPA3 加密格式报错部分日志信息: 2、系统代码分析&a…...

2023-11-12 LeetCode每日一题(Range 模块)

2023-03-29每日一题 一、题目编号 715. Range 模块二、题目链接 点击跳转到题目位置 三、题目描述 Range模块是跟踪数字范围的模块。设计一个数据结构来跟踪表示为 半开区间 的范围并查询它们。 半开区间 [left, right) 表示所有 left < x < right 的实数 x 。 实…...

【六袆 - Framework】Angular-framework;前端框架Angular发展的由来0001;

Angular发展介绍&#xff0c;Angular17新特性 官方文档Angular框架发展的由来何为结构化、模块化 Angular17新特性 English unit Embarking on the journey of deep technical learning requires a well-structured approach, applicable to any programming language. The key…...

JAVA集合学习

一、结构 List和Set继承了Collection接口&#xff0c;Collection继承了Iterable Object类是所有类的根类&#xff0c;包括集合类&#xff0c;集合类中的元素通常是对象&#xff0c;继承了Object类中的一些基本方法&#xff0c;例如toString()、equals()、hashCode()。 Collect…...

【Linux】语言层面缓冲区的刷新问题以及简易模拟实现

文章目录 前言一、缓冲区刷新方法分类a.无缓冲--直接刷新b.行缓冲--不刷新&#xff0c;直到碰到\n才刷新c.全缓冲--缓冲区满了才刷新 二、 缓冲区的常见刷新问题1.问题2.刷新本质 三、模拟实现1.Mystdio.h2.Mystdio.c3.main.c 前言 我们接下来要谈论的是我们语言层面的缓冲区&…...

Mac安装与配置eclipse

目录 一、安装Java&#xff1a;Mac环境配置&#xff08;Java&#xff09;----使用bash_profile进行配置&#xff08;附下载地址&#xff09; 二、下载和安装eclipse 1、进入eclipse的官网 (1)、点击“Download Packages ”​编辑 (2)、找到macOS选择符合自己电脑的框架选项…...

TCP协议(建议收藏)

1. TCP特点 有连接&#xff1a;需要双方建立连接才能通信&#xff0c;在socket编程中服务端new ServerSocket(port)需要绑定端口&#xff0c;在客服端new Socket(serverIp, serverPort)与服务端建立连接可靠传输&#xff1a;确认应答机制&#xff0c;超时重传机制面向字节流&a…...

Interactive Analysis of CNN Robustness

Interactive Analysis of CNN Robustness----《CNN鲁棒性的交互分析》 摘要 虽然卷积神经网络&#xff08;CNN&#xff09;作为图像相关任务的最先进模型被广泛采用&#xff0c;但它们的预测往往对小的输入扰动高度敏感&#xff0c;而人类视觉对此具有鲁棒性。本文介绍了 Pert…...

Java,多线程,线程的通信机制

线程间通信的理解&#xff1a; 当我们需要多个线程来共同完成一件任务&#xff0c;并且我们希望他们有规律地执行&#xff0c;那么多线程之间需要一些通信机制。可以协调它们的工作&#xff0c;以此实现多线程共同操作一份数据。 关于线程间的通信&#xff0c;以下代码为例&am…...

ArcGIS进阶:栅格计算器里的Con函数使用方法

本实验操作为水土保持功能重要性评价&#xff1a; 所用到的数据包括&#xff1a;土地利用类型数据&#xff08;矢量&#xff09;、植被覆盖度数据&#xff08;矢量&#xff09;和地形坡度数据&#xff08;栅格&#xff09;。 由于实验数据较少&#xff0c;其思路也较为简单&a…...

小程序多文件上传 Tdesign

众所周知&#xff0c;小程序文件上传还是有点麻烦的&#xff0c;其实主要还是小程序对的接口有诸多的不便&#xff0c;比如说&#xff0c;文件不能批量提交&#xff0c;只能一个个的提交&#xff0c;小程序的上传需要专门的接口。 普通的小程序的页面也比普通的HTML复杂很多 现…...

Java多线程锁

AQS 互斥锁&#xff0c;悲观锁 public class Demo1 {// 从0累加到1000 悲观锁static Integer num 0;public static void main(String[] args) {for (int i 0; i < 3; i) {Thread t new Thread(() -> {while (num < 1000) {synchronized (num.getClass()) {if (nu…...

从游戏地形到有限元分析:Delaunay三角剖分在Unity/CAD中的实战应用指南

从游戏地形到有限元分析&#xff1a;Delaunay三角剖分在Unity/CAD中的实战应用指南 当你在Unity中生成一片随机地形时&#xff0c;那些起伏的山脉和蜿蜒的河流是如何被计算机精确表示的&#xff1f;当工程师设计一架飞机时&#xff0c;复杂的机翼曲面又是如何被分解成可供有限元…...

Gemini-CLI 从零到精通的命令行AI开发指南

1. 认识Gemini-CLI&#xff1a;你的命令行AI助手 第一次听说Gemini-CLI时&#xff0c;我也觉得这不过又是一个AI玩具。直到在本地终端里用它5分钟写完一个Python爬虫脚本&#xff0c;才意识到这个命令行工具的强大。简单来说&#xff0c;Gemini-CLI就像把Google最先进的AI模型…...

遥感数字图像处理教程【1.6】

3 . 3 单波段图像的统计如果没有特殊的说明&#xff0c;设 数 字 图 像 为 大 小 为 M x N , N 为图像的列数&#xff0c;例为图像的行数&#xff0c; z 0,-, N-l, J 0,… &#xff0c;M - \ o3 . 3 . 1 基本的统计量1 . 反映图像平均信息的统计参数1&#xff09;均值像素值的…...

GLM-4.1V-9B-Bate后端开发实战:构建高并发图像处理任务队列

GLM-4.1V-9B-Bate后端开发实战&#xff1a;构建高并发图像处理任务队列 1. 为什么需要异步任务队列 电商平台每天要处理数百万张商品图片的智能分析请求&#xff0c;传统同步接口直接返回结果的方式已经无法满足需求。当用户上传一张图片等待AI分析时&#xff0c;如果采用同步…...

ACE-Step入门指南:零基础小白也能玩的AI音乐生成工具

ACE-Step入门指南&#xff1a;零基础小白也能玩的AI音乐生成工具 1. 什么是ACE-Step&#xff1f; ACE-Step是一款由ACE Studio与阶跃星辰联合推出的开源音乐生成模型。它最大的特点就是让音乐创作变得像打字一样简单——不需要懂乐理、不需要会乐器&#xff0c;只要输入文字描…...

Chord - Ink Shadow 助力Java开发者:SpringBoot集成与智能API构建

Chord - Ink & Shadow 助力Java开发者&#xff1a;SpringBoot集成与智能API构建 最近和几个做后端的朋友聊天&#xff0c;发现大家都有个共同的感受&#xff1a;现在做应用&#xff0c;不加点AI能力&#xff0c;好像都有点不好意思拿出手了。但真要把那些大模型集成到自己…...

阿里滑块验证码x82y实战:手把手教你用Python搭建231.28版本补环境方案(附完整代码)

阿里滑块验证码x82y实战&#xff1a;Python补环境方案深度解析 最近在开发者社区中&#xff0c;关于验证码自动化的讨论热度持续攀升。特别是针对阿里系平台的滑块验证码&#xff0c;不少开发者都在寻找既稳定又高效的解决方案。今天我们就来深入探讨一种基于Python的补环境方案…...

别再用旧系统了!给高通410板子(JZ02_V10)刷上OpenWRT,顺便搞定短信转发(保姆级避坑)

高通410开发板OpenWRT改造指南&#xff1a;从刷机到短信转发全流程解析 手里那块吃灰的高通410开发板终于有了用武之地&#xff01;相比原厂Debian系统的臃肿和功能局限&#xff0c;OpenWRT带来的不仅是轻量级路由体验&#xff0c;更能通过基带模块实现短信转发等实用功能。本文…...

AIVideo从入门到精通:掌握全流程自动化视频生产的秘诀

AIVideo从入门到精通&#xff1a;掌握全流程自动化视频生产的秘诀 1. 为什么你需要一个AI视频创作平台 想象一下这样的场景&#xff1a;周一早上&#xff0c;老板突然要求你在下午三点前制作一个产品介绍视频。传统流程可能需要你&#xff1a;写脚本→找素材→录音→剪辑→调…...

NVIDIA Profile Inspector终极指南:解决572.16驱动兼容性问题

NVIDIA Profile Inspector终极指南&#xff1a;解决572.16驱动兼容性问题 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 还在为NVIDIA显卡驱动更新后游戏性能异常而烦恼吗&#xff1f;近期许多用户反馈…...