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

gdb常用命令详解

gdb常用调试命令概览和说明

run命令

在默认情况下,gdb+filename只是attach到一个调试文件,并没有启动这个程序,我们需要输入run命令启动这个程序(run命令被简写成r)。如果程序已经启动,则再次输入 run 命令就会重启程序。

continue命令

在程序触发断点或者使用 Ctrl+C 组合键中断后,如果我们想让程序继续运行,则只需输入 continue 命令即可(简写成 c)。当然,如果通过 continue 命令让程序在继续运行的过程中触发设置的程序断点,则程序会在断点处中断。

break命令

break 命令即我们添加断点的命令,可以将其简写成 b。

##在functionname函数的入口处添加断点
break functionname
##在当前文件行号为LineNo的地方添加一个断点
break LineNo
##在filename 文件行号为LineNo的地方添加一个断点
break filename:LineNo

tbreak命令

break 命令用于添加一个永久断点;tbreak 命令用于添加一个临时临时断点。

backtrace与frame命令

backtrace 可简写成 bt,用于查看当前所在线程的调用堆栈。如果我们想切换到其他堆栈处,则可以使用frame命令。frame命令可被简写成f。

frame 堆栈编号

info break、enable、disable、delete命令

在程序中加了很多断点以后,若想查看加了哪些断点,则可以使用info break命令

如果我们想禁用某个断点,则使用 disable 断点编号就可以禁用这个断点了,被禁用的断点不会再被触发;被禁用的断点可以使用enable断点编号并重新开启。

如果disable和enable命令不加断点编号,则分别表示禁用和启用所有断点

使用delete编号可以删除某个断点。如果输入delete时不加命令号,则表示删除所有断点。

list命令

list命令用于查看当前断点附近的代码,可以简写成l。

list+命令(即list加号)可以从当前代码位置向下显示10行代码(向文件末尾方向)。list-命令(即list 减号)可以从当前代码位置向上显示10行代码(往文件开始方向)。

print与ptype命令

print命令可以被简写成 p。通过 print命令可以在调试过程中方便地查看变量的值,也可以修改当前内存中的变量值。通过 print命令不仅可以输出变量的值,也可以输出特定表达式的计算结果,甚至可以输出一些函数的执行结果。

通过 print命令不仅可以输出表达式的结果,还可以修改变量的值

info与thread命令

info命令是一个复合指令,可以用来查看当前进程所有线程的运行情况。

info命令还可以用来查看当前函数的参数值,组合命令是info args。

next、step、until、finish、return、jump命令

next命令可被简写为n,next命令的调试术语叫“单步步过(step over)”,即遇到函数调用时不进入函数体内部,而是直接跳过。

step命令就是“单步步入(step into)”,顾名思义,就是遇到函数调用时进入函数内部。step可被简写为 s。

return命令用于结束执行当前函数,同时指定该函数的返回值

finish命令用于执行完整的函数体,然后正常返回到上层调用中

until 命令,可被简写为u,我们使用这个命令让程序运行到指定的行停下来

jump命令的基本用法如下:

jump <location>

location可以是程序的行号或者函数的地址,jump会让程序执行流跳转到指定的位置执行,其行为也是不可控的

在gdb命令行界面直接按下回车键,默认是将最近一条命令重新执行一遍

set args与show args命令

         很多程序都需要我们传递命令行参数。在gdb调试中使用gdb filename args这种形式给被调试的程序传递命令行参数是行不通的。正确的做法是在用gdb attach程序后,使用run 命令之前,使用 set args 命令行参数来指定被调试程序的命令行参数。可以通过show args查看命令行参数是否设置成功。

如果在单个命令行参数之间有空格,则可以使用引号将参数包裹起来。

如果想清除已经设置好的命令行参数,则使用set args不加任何参数即可。

watch命令

        watch是一个强大的命令,可以用来监视一个变量或者一段内存,当这个变量或者该内存处的值发生变化时,gdb就会中断。监视某个变量或者某个内存地址会产生一个观察点(watch point)。

需要注意的是:当设置的观察点是一个局部变量时,局部变量失效后,观察点也会失效。

display命令

display 命令用于监视变量或者内存的值,每次 gdb 中断,都会自动输出这些被监视变量或内存的值。

display命令的使用格式是display 变量名/内存地址/寄存器名。

我们可以使用info display查看当前已经监视了哪些值,使用delete display清除全部被监视的变量,使用delete display 编号移除对指定变量的监视。

dir命令

可执行程序崩溃,我们用gdb调试core文件时,gdb可能会提示“No such file or directory”。

gcc/g++编译出来的可执行程序并不包含完整的源码,-g 只是加了一个可执行程序与源码之间的位置映射关系,我们可以通过dir命令重新定位这种关系。

##加一个源文件路径到当前路径的前面,指定多个路径,可以使用“:”
dir SourcePath:SourcePath2:SourcePath3

SourcePath1、SourcePath2、SourcePath3 指的就是需要设置的源码目录,gdb 会依次到这些目录下搜索相应的源文件。

如果要查看当前设置了哪些源码搜索路径,则可以使用show dir命令。

dir命令不加参数时,表示清空当前已设置的源码搜索路径。

相关文章:

gdb常用命令详解

gdb常用调试命令概览和说明 run命令 在默认情况下&#xff0c;gdbfilename只是attach到一个调试文件&#xff0c;并没有启动这个程序&#xff0c;我们需要输入run命令启动这个程序&#xff08;run命令被简写成r&#xff09;。如果程序已经启动&#xff0c;则再次输入 run 命令…...

2022 年江西省职业院校技能大赛高职组“信息安全管理与评估”赛项样题

2022 年江西省职业院校技能大赛高职组 “信息安全管理与评估”赛项样题 一、 赛项信息 第一场比赛&#xff1a; 竞赛阶段 任务阶 段 竞赛任务 竞赛时 间 分值 第一阶段 任务 1 网络平台搭建 90 平台搭建与安全 任务 2 网络安全设备配置与防护 210 设备配置防护…...

射频调试的习惯

三月开工了&#xff0c;一个月的调试即将开始。其实调试的重心是测试&#xff0c;核心的推动力是做事的习惯和思维。测试很重要&#xff0c;数据不对&#xff0c;能力和时间都浪费了上面了。测试的问题初步解完了&#xff0c;今天吃饭的时候碰到大领导。领导好忙&#xff0c;我…...

centos7上安装mysql8.0

1、检查一下自己电脑上安装了哪些mysql [rootlocalhost ~]# find / -name mysql 2、把安装的mysql全部删掉 [rootlocalhost ~]# rm -rf /usr/lib64/mysql/ [rootlocalhost ~]# rm -rf /usr/local/mysql/ [rootlocalhost ~]# rm -rf /etc/selinux/targeted/active/modules/100…...

如何使用BackupOperatorToDA将Backup Operators用户权限提升为域管理员

关于BackupOperatorToDA BackupOperatorToDA是一款功能强大的红队提权工具&#xff0c;该工具能够在不使用域控制器RDP或WinRM的情况下&#xff0c;帮助广大研究人员将Backup Operators组的成员账号提升为域管理员权限。 如果红队研究人员在渗透测试的过程中&#xff0c;拿到…...

百度文心大模型开发者斩获CCF BDCI大赛唯一『最佳算法能力奖』

‍2023年2月24日至25日&#xff0c;中国计算机学会&#xff08;CCF&#xff09;主办、苏州市吴江区人民政府支持&#xff0c;苏州市吴江区工信局、吴江区东太湖度假区管理办公室、苏州市吴江区科技局、CCF大数据专家委员会及其他专业委员会等多家组织单位共同承办的大数据与AI领…...

合宙Air780E|硬件元数据|LuatOS-SOC接口|官方demo|学习(21):hmeta(本库尚在开发中)

基础资料 基于Air780E开发板&#xff1a;Air780E文档中心 简介&#xff1a;CSDK开发 探讨重点 本系列主要探讨利用合宙平台进行fota_iot差分包升级的基本操作、编译及上传&#xff0c;升级等操作。 硬件准备 Air780E开发板1块&#xff0c;SIM卡1张。 ​内容参考 官方wi…...

Educational Codeforces Round 144 (Rated for Div. 2) (A-C)

文章目录A. Typical Interview Problem【找规律&#xff0c;暴力】B. Asterisk-Minor Template【分类、模拟】C. Maximum Set【数学】A. Typical Interview Problem【找规律&#xff0c;暴力】 链接 传送门 分析 3 5 6 9 10 12 15||||||| 15 3 15 5 ………… F B F F B F FB…...

机器学习100天(三十三):033 KD树的Python实现

《机器学习100天》完整目录:目录 机器学习100天,今天讲的是:KD 树的Python实现! 打开 spyder,我们新建一个 kd_tree.py 脚本。首先,我们新建一个类,名为Node,它定义了 KD 树节点中包含的数据结构。例如数据、深度、左节点、右节点。 # KD树结点中包含的数据结构 clas…...

matlab-数据和数据运算

学习视频基本数据类型1.1 整型与浮点型在matlab中同样有8、16、32、64bit的数据大小之分&#xff0c;同时也可以叠加signed(有符号)和unsigned(无符号)的区别&#xff0c;默认数据类型为double(双精度浮点型)参考其他博客的详述1.2 复数还有一些其他常用的函数方法&#xff1a;…...

怕被AI取代快想办法“攒”个“数字第二大脑”

每日经济新闻发文:来自央视财经微博2月27日消息,美国《财富》杂志网站近日报道,美国一家提供就业服务的平台对1000家企业进行了调查。结果显示,美国最新调查显示50%企业已在用ChatGPT,其中48%已让其代替员工,有公司省下10多万美元!还有30%表示,有计划使用。...

【zlkmedia】rtp处理代码走读

zlkmedia的特点就是专门为安防定制了一系列直播、rtc相关流媒体协议处理rtp包的处理是贯穿始终的。本文是阅读rtp包处理代码的笔记。服务器收到rtp包 D:\XTRANS\ZLMIA\ZLMediaKit-offical\src\Rtp\RtpServer.cppvoid onRecvRtp(const Socket::Ptr &sock, const Buffer::Ptr…...

SSM SpringBoot vue 在线教学质量评价系统

SSM SpringBoot vue 在线教学质量评价系统 SSM 在线教学质量评价系统 功能介绍 首页 图片轮播展示 登录 学生注册 教师注册 督导注册 教师展示 教师详情 学生评价 课程信息 课程详情 提交选修该课 学生选课 学生留言 个人中心 后台管理 管理员或学生或教师或督导登录 个人中…...

如何使用Codecepticon对C#、VBA宏和PowerShell源代码进行混淆处理

关于Codecepticon Codecepticon是一款功能强大的代码混淆处理工具&#xff0c;该工具专为红队和紫队渗透测试安全活动而开发&#xff0c;在该工具的帮助下&#xff0c;广大研究人员可以轻松对C#、VBA5/VBA6&#xff08;宏&#xff09;和PowerShell源代码进行混淆处理。Codecep…...

delphi fmx android11,12删除照片

最近用fmx在研究照片管理 在删除照片时出现报错 has no access to content 后面得知,android系统11开始强制启用Scoped Storage分区存储 前言: android系统对于媒体文件的修改在代码和应用层面的不同,将取决于分区存储是否启用: Android10开始引入Scoped Storage分区存储 ,…...

Android - API对应版本名称

APIAndroid版本名称3414.0UpsideDownCake3313.0Tiramisu3212.0Sv23112.0S3011.0R2910.0Q289.0Pie278.1Oreo268.0Oreo257.1Nougat247.0Nougat236.0Marshmallow225.1LOLLIPOP_MR1215.0LOLLIPOP194.4KITKAT194.4KITKAT184.3JELLY_BEAN_MR2174.2/4.2.2JELLY_BEAN_MR1164.1/4.1.1JEL…...

22.3.1 Educational Codeforces Round 144 (Rated for Div. 2) A~C

A题 题目链接: https://codeforces.com/contest/1796/problem/A 题解: 感觉就是阅读理解题, 3和5的公倍数出现有规律(嫌麻烦可以直接先算出1~1000的s)然后直接一个string的find函数就解决了, 注意一下find函数如果搜不到返回之是npos(-1) /* ⣿⣿⣿⣿⣿⣿⡷⣯⢿⣿⣷⣻⢯⣿⡽…...

【C#基础】C# 预处理器指令

序号系列文章8【C#基础】C# 面向对象编程9【C# 基础】C# 异常处理操作10【C#基础】C# 正则表达式文章目录前言1&#xff0c;预处理器指令的概念2&#xff0c;预处理器指令的定义与使用2.1&#xff0c;可为空上下文2.2&#xff0c;定义符号2.3&#xff0c;条件编译2.4&#xff0…...

摸鱼用python获取弹幕的两种方式【前者简单,后者数据好看】

嗨害大家好鸭&#xff01;我是小熊猫~ 相信大家对于 “弹幕文化” 已经相当熟悉啦 你不是一个人在看——这就是弹幕网站的存在感。 它形成了新的“抱团”观看模式&#xff0c; 也真正实现了无时空距离的社交。 有网友表示&#xff0c;弹幕简直比剧情还有趣。 看似简单的寥寥…...

【C++】继承与多态

目录前言1. 继承1.1 继承的概念1.2 继承的定义1.3 切片赋值1.4 继承中的作用域1.5 派生类的默认成员函数1.6 继承与友元、静态成员1.7 多继承、菱形继承、菱形虚拟继承1.7.1 区分单继承与多继承1.7.2 菱形继承1.7.3 菱形虚拟继承1.7.4 菱形虚拟继承的原理2. 多态2.1 概念2.2 多…...

阿里云域名动态解析避坑指南:从AccessKey到API调用的完整流程

阿里云域名动态解析实战手册&#xff1a;从权限配置到高可用方案设计 对于拥有个人博客、家庭NAS或远程开发环境的技术爱好者而言&#xff0c;动态公网IP始终是个令人头疼的问题。每当ISP重新分配IP地址时&#xff0c;原本稳定的服务连接就会突然中断。本文将分享如何利用阿里云…...

Oracle RAC实战:5分钟搞懂SCAN IP和VIP的区别与配置技巧

Oracle RAC实战&#xff1a;SCAN IP与VIP的深度解析与高效配置指南 引言 在Oracle RAC&#xff08;Real Application Clusters&#xff09;环境中&#xff0c;高可用性和负载均衡是核心诉求。SCAN IP和VIP作为两大关键技术组件&#xff0c;常常让刚接触RAC的DBA感到困惑。它们虽…...

【windows】VirtualBox网络配置及实战-Host Only 仅主机模式

1.概述 仅 主 机 网 络 &#xff1a; 用 来 创 建 一 个 包 含 主 日 一 组 虚拟机的 网 络 &#xff0c; 而 不 需 要 主 机 的 物 理 网 络 接 口 &#xff0e;相反 &#xff0c;在虚拟机上创建了一个类似于环回接口的虚拟网络接口。提 供 虚 似 机 和 主 机 之 间 的 连 接 …...

小米多看电纸书刷机全攻略:从墨案系统回退到原厂固件的保姆级教程

小米多看电纸书系统恢复指南&#xff1a;从第三方固件回归官方体验 作为一名长期使用电子墨水设备的深度用户&#xff0c;我完全理解那种尝试新系统后又怀念原厂体验的矛盾心理。去年冬天&#xff0c;我的小米多看电纸书也经历了从墨案系统回退到官方固件的完整过程&#xff0c…...

利用快马平台快速生成javascript交互原型:以动态待办列表为例

利用快马平台快速生成JavaScript交互原型&#xff1a;以动态待办列表为例 最近在尝试快速验证一个待办事项应用的交互设计&#xff0c;发现用传统方式从零开始写代码太耗时了。正好试用了InsCode(快马)平台&#xff0c;只需要描述功能需求&#xff0c;就能自动生成可运行的Jav…...

LFM2.5-1.2B-Thinking-GGUF多轮对话效果展示:复杂任务规划与分解

LFM2.5-1.2B-Thinking-GGUF多轮对话效果展示&#xff1a;复杂任务规划与分解 1. 开场亮点 当被问到"帮我策划一次团队建设活动"时&#xff0c;LFM2.5-1.2B-Thinking-GGUF模型展现出了令人惊喜的"思考"能力。不同于简单的一问一答&#xff0c;这个模型能够…...

从零开始:CosyVoice 2 声码器入门指南与实战解析

在语音合成的世界里&#xff0c;声码器扮演着“声音雕刻师”的角色。简单来说&#xff0c;它负责将一串抽象的特征&#xff08;比如梅尔频谱&#xff09;转换为我们耳朵能听到的、连续的真实音频波形。没有它&#xff0c;再好的文本转语音模型也只能输出“哑巴”数据。然而&…...

Uniapp集成智能客服功能实战:从选型到性能优化的完整指南

在移动应用生态中&#xff0c;客服系统已从“成本中心”转变为“增长引擎”。数据显示&#xff0c;一个响应迅速、体验流畅的在线客服系统&#xff0c;能将用户咨询转化率提升30%以上&#xff0c;并显著降低用户流失率。对于使用Uniapp开发的跨平台应用而言&#xff0c;集成一套…...

60个AI核心概念,不背定义,全落到工作场景!老王手把手教你建知识库、搭Agent,附原型库+PRD模板

&#x1f4a1; Chunking 文档分块 你的 RAG 知识库上线了&#xff0c;用户问一个具体问题&#xff0c;系统返回了一段莫名其妙的内容。一查发现&#xff0c;检索到的文档片段被切在了一个句子中间&#xff0c;上半句话在一个块里&#xff0c;下半句在另一个块里。模型看到半句…...

5分钟搞定多聚焦图像融合:从数据集到评价指标全流程指南

5分钟搞定多聚焦图像融合&#xff1a;从数据集到评价指标全流程指南 多聚焦图像融合技术正逐渐成为计算机视觉领域的热门研究方向。这项技术通过将多张聚焦区域不同的图像合成为一张全清晰的图像&#xff0c;解决了单次拍摄无法同时捕捉场景中所有物体清晰细节的难题。对于刚接…...