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

linux gdb 调试 常见调试命令介绍+总结

1.调试前准备 -g

gcc arcg.c -g -oO -o app       //必须添加-g

2.调试 gdb

gdb app

3.常见调试命令

set args 1 2 3 4 5 6    //设置参数
show args             //查看参数

3.1执行程序 1.start2. run

gdb app
set args 1 2 3 4 5
start //执行一行
c     //继续执行
q     //退出
gdb app
set args 1 2 3 4 5
run/r   

3.2查看代码list l

gdb app
list/l        //默认只显示10行  直接回车显示下10行
list 行号
list 文件名:行号
list 函数名
list 文件名:函数名
set listsize/list 20  //修改显示行数 20行

3.3断点 break b

b 行号
b 函数名
b 文件名:行号
b 文件名:函数名
3.3.1条件断点 if
b 30 if i==5  //i=5时断点生效
3.3.2查看断点 i
info/i
i b   //info break
3.3.3删除断点 d
delete/d
d 断点编号
d 1
d 2 4 6
d 1-5
3.3.4设置断点无效 dis
disable//d
dis 断点编号
dis 1-5
3.3.5使无效断点生效 ena
enable==ena
ena 断点的编号
ena 1-5

3.4继续运行 continue c

3.5打印变量 print  p

p 变量名
p i 
p/fmt i
3.5.2打印变量类型 ptype 
ptype i
3.5.3自动打印信息 display  自动打印变量值

程序运行到断点后 输入display 

启动单步调试 n   后会自动显示

display i
displat/fmt i

查看自动打印列表 

info display
(gdb) info display
Auto-display expressions now in effect:
Num Enb Expression
1:   y  i
2:   y  array[i]
3:   y  /x array[i]
3.5.4取消自动显示 undisplay
undisplay 1 2
3.5.5禁用自定显示  disable
disable display 1
3.5.6启用自动显示enable
enable  display 1

4.单步调试

4.1对程序逐行执行 进入函数内部 step s

4.2从函数跳出 finish

跳出的函数内部无断点 或者断点无效

4.3对程序跳过执行 跳过函数 next n

4.4.单步调试 跳出循环 until 

条件

1.内部不可有断点

2.必须在循环体开始或结束执行

5.设置变量值 set var i=5    

使用场景 如控制循环轮次

6总结

gcc main.c -o main -g
gdb main
set args 1 2 3 4
show args 
run/r  or start
contibue/c
quit/q
list/l
info/i
b 1 
delete/d     -- d 1
disable/dis  -- dis 1
enable/ena   --ena 2continue/c   --c
print/p i 
ptype i
display 
undisplay
disable display
enable display
step/s
next/n
finish
until
set var i=5

学习总结

10.1 gdb的准备工作_哔哩哔哩_bilibili

相关文章:

linux gdb 调试 常见调试命令介绍+总结

1.调试前准备 -g gcc arcg.c -g -oO -o app //必须添加-g 2.调试 gdb gdb app 3.常见调试命令 set args 1 2 3 4 5 6 //设置参数 show args //查看参数 3.1执行程序 1.start2. run gdb app set args 1 2 3 4 5 start //执行一行 c //继续执行 q…...

基于JavaWeb+SSM+Vue微信小程序校园兼职任务平台系统的设计和实现

基于JavaWebSSMVue微信小程序校园兼职任务平台系统的设计和实现 源码传送入口前言主要技术系统设计功能截图Lun文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码传送入口 前言 随着社会的发展和全球疫情的冲击,大学生的就业形势越来越严峻。越…...

我的MQTT操作类(M2Mqtt.Net)

类本体 4.3.0 public class MQTTMain{public MqttClient mqttClient null ; public bool MQTTMainConnect(string MenZuNo, string ServerIP, int ServerPort, string UserName, string Pwd){try{string EMQX_CLIENT_ID $"称重端-{MenZuNo}-{OPCommon.PCControl.G…...

node插件MongoDB(四)—— 库mongoose 的个性话读取(字段筛选、数据排序、数据截取)(四)

文章目录 一、字段筛选二、数据排序三、数据截取1. skip 跳过2. limit 限定![在这里插入图片描述](https://img-blog.csdnimg.cn/c7067b1984ee4c6686f8bbe07cae9176.png) 一、字段筛选 字段筛选:只读取指定的数据,比如集合(表)中有…...

AI:73-结合语法知识的神经机器翻译研究

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌在这个漫长的过程,中途遇到了不少问题,但是…...

[LeetCode]-225. 用队列实现栈

目录 225. 用队列实现栈 题目 ​思路 代码 225. 用队列实现栈 225. 用队列实现栈 - 力扣(LeetCode)https://leetcode.cn/problems/implement-stack-using-queues/description/ 题目 请你仅使用两个队列实现一个后入先出(LIFO&#xff0…...

Kafka Rebanlace次数过高问题

Kafka Rebanlace次数过高问题 环境: Kafka Server 2.6.x Kafka Client Java 2.8.2 缘起: 最近发现Kafka Rebalance次数着实有点多,一天达到了六十多次,感觉不太正常,于是查了下日志发现: Offset commit c…...

计算机是如何进行工作的+进程和线程

一)计算机是如何工作的? 指令是如何执行的?CPU基本工作过程? 假设上面有一些指令表,假设CPU上面有两个寄存器A的编号是00,B的编号是01 1)第一个指令0010 1010,这个指令的意思就是说把1010地址上面的数据给他读取到A寄存器里面 2…...

MySQL(11):数据处理之增删改

插入数据 方式1: 一条一条的添加数据 为表的所有字段按默认顺序插入数据 INSERT INTO 表名 VALUES (value1,value2,....);# 没有指明添加的字段 INSERT INTO emp1 VALUES (1,TOM,2023-11-06,3400);没有指明添加的字段,要按照声明顺序,进行…...

QT QDockWidget

QDockWidget是Qt中的一个容器类,用于在主窗口上创建可停靠的子窗口。 设置停靠窗口的一般流程如下: (1)创建一个QDockWidget 对象的停靠窗体。 (2)设置此停靠窗体的属性,通常调用setFeatures()及setAllowedAreas()两种方法。 (3)新建一个要插入停靠窗…...

Android 12.0 开启蓝牙状态栏即显示蓝牙图标

Android 12.0 开启蓝牙状态栏即显示蓝牙图标 最近收到客户反馈想要在开启蓝牙时状态栏就能显示出蓝牙图标,我们系统默认是蓝牙连接上设备后状态栏才显示出蓝牙图标,具体修改参照如下: /vendor/mediatek/proprietary/packages/apps/SystemUI…...

skynet学习笔记02— skynet介绍、skynet基础API与环境变量

01、Skynet与Actor模型 在系统Skynet之前,先了解一下Skynet与Actor模型,下列是风云大佬的介绍以及一个大佬的博客 https://github.com/cloudwu/skynet/wiki/GettingStartedhttps://blog.csdn.net/qq769651718/article/details/79432793 02、Skynet基础…...

Android---App 崩溃

崩溃问题是衡量 App 质量的决定性考核标准。Android 系统会输出各种相应的 log 日志,很大程度上降低了工程师 debug 崩溃问题的难度。如果要给 crash 日志进行分类,可以分为2大类:JVM 异常(Exception)堆栈信息和 nativ…...

DocTemplateTool - 可根据模板生成word或pdf文件的工具

你是否经常遇到这样的场景:产品运营有着大量的报告需求,或者给客户领导展现每周的运营报告?这些文档类的任务可以交给运营同事,他们负责文档排版和样式,你作为开发人员你只需要提供数据源,和一个映射表&…...

Python+reuqests自动化接口测试

1.最近自己在摸索Pythonreuqests自动化接口测试,要实现某个功能,首先自己得有清晰的逻辑思路!这样效率才会很快! 思路--1.通过python读取Excel中的接口用例,2.通过python的函数调用,get/Post 进行测试&…...

【Java 进阶篇】保护你的应用:Java 过滤器实现敏感词汇过滤

在开发 Web 应用程序时,安全性是至关重要的一环。保护用户免受恶意内容的侵害是开发者义不容辞的责任之一。在这篇博客中,我们将深入研究如何使用 Java 过滤器来过滤敏感词汇,确保用户输入的内容不包含不良信息。我们将采用简单而实用的方法&…...

目标检测网络系列——YOLO V4

文章目录 目标检测技术总结两种优化方向Bag of freebiesBag of specialsYOLO4网络结构网络架构(architecture)的选择基础网络结构的选择网络"插件"的选择。BoF和BoS的选择(Selection of BoF and BoS)YOLO4的其他改进点对比实验不同的特征(数据增强方法)之间的对比det…...

如何在Linux上部署1Panel运维管理面板并远程访问内网进行操作

文章目录 前言1. Linux 安装1Panel2. 安装cpolar内网穿透3. 配置1Panel公网访问地址4. 公网远程访问1Panel管理界面5. 固定1Panel公网地址 前言 1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器,包括主机监控、…...

CentOS系统安装vsftpd

下载并安装vsftpd apt-get install vsftpd 安装后检查 service vsftpd status 修改配置文件(被动/匿名用户模式) vi /etc/vsftpd.conf anonymous_enableNO listenYES listen_port21 ascii_upload_enableYES ascii_download_enableYES local_enableYES guest_enable…...

手握“发展密钥”,TCL科技或迎价值重估?

在高度竞争且快速变化的泛半导体产业,每一次周期性或结构性的变化,都会对企业经营策略带来深远的影响。 2023年前三季度,泛半导体产业迎来结构性复苏。其中,主流显示领域供需关系趋向健康化,半导体显示行业整体上量价…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

在Ubuntu24上采用Wine打开SourceInsight

1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

IP如何挑?2025年海外专线IP如何购买?

你花了时间和预算买了IP,结果IP质量不佳,项目效率低下不说,还可能带来莫名的网络问题,是不是太闹心了?尤其是在面对海外专线IP时,到底怎么才能买到适合自己的呢?所以,挑IP绝对是个技…...

免费PDF转图片工具

免费PDF转图片工具 一款简单易用的PDF转图片工具,可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件,也不需要在线上传文件,保护您的隐私。 工具截图 主要特点 🚀 快速转换:本地转换,无需等待上…...

搭建DNS域名解析服务器(正向解析资源文件)

正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...

免费数学几何作图web平台

光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...

打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用

一、方案背景​ 在现代生产与生活场景中,如工厂高危作业区、医院手术室、公共场景等,人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式,存在效率低、覆盖面不足、判断主观性强等问题,难以满足对人员打手机行为精…...