Linux下gdb基础命令演示,及命令汇总图

news2024/12/23 17:48:57

提示:本文主要介绍了什么是gdb,以及gdb指令及其具体使用案例
在这里插入图片描述
————故不积跬步,无以至千里;不积小流,无以成江海。

文章目录

  • 一、gdb模式下命令一览。
    • 1.1基本命令:
    • 1.2 断点命令:
    • 1.3 数据命令:
    • 1.4 调试相关命令:
  • 二、什么是gdb?
    • 2.1 基础命令展示


一、gdb模式下命令一览。

1.1基本命令:

命令描述
q/quit退出gdb
l查看源文件源码
b 6(x)添加断点到gdb的第x行
info b查看断点(可设置多个断点)
d x删除所设置的第x个断点,有多个断点
r运行代码
watch n当我们在n处设置的观察点时,r后该命令显示n处程序
n单句执行(VS下逐过程F10)
s单条执行(VS下逐语句F11)
c程序继续运行,除非遇到新的断点,或者程序结束

1.2 断点命令:

命令描述
finish运行完当前函数的代码回到调用该函数处,然后停下来等待命令
break + n在第n行设置断点
tbreak + 行号或函数名设置临时断点,到达后被自动删除
break + 行号 + if + 条件用于设置条件断点,在循环中使用非常方便
clear + 要清除的断点行号清楚对应行号的断点
delete + 要清除的断点编号针对断点编号的清楚断点
disable+断点编号使得指定编号断点暂时失效
watch+变量设置一个观察点,当变量被读出或写入时程序被暂停

1.3 数据命令:

命令描述
display +表达式显示表达式的值,当程序运行到断点处就会显示
delete + display 编号用于删除一个要显示值的表达式,被删除的表达式将不被显示
disable/enable + display 编号使一个要显示值的表达式暂时失效/使能
print§ + 变量/表达式用于打印变量或表达式的值
info display用于显示当前所有要显示值的表达式的情况

1.4 调试相关命令:

命令描述
set width + 数目设置GDB的行宽
set width + 数目设置GDB的行宽
cd + 工作目录切换工作目录
r/run程序开始执行
step(s)进入式(会进入到所调用的子函数中)单步执行,进入函数的前提是,此函数被编译有debug信息
finish一直运行到函数返回并打印函数返回时的堆栈地址和返回值及参数值等信息
until + 行数运行到函数某一行
continue©执行到下一个断点或程序结束
return <返回值>改变程序流程,直接结束当前函数,并将指定值返回
call + 函数在当前位置执行所要运行的函数

二、什么是gdb?

同Windows下的VS编译器下的调试机制一样,在Linux系统下有着它独特的调试器gdb,用来帮助我们发现并解决编程中产生的错误。

2.1 基础命令展示

gdb编译器进入方式:
在这里插入图片描述
当我们直接通过gdb进入时,会发现它提示了一堆的东西。
除了执行程序的基本信息,还提示没有在debug版本下。
当我们打开Linux时,默认都就是release模式,不具备调试信息,此时就需要在makefile中编译时加上**-g选项。
在这里插入图片描述
重新生成:就会发现没有了debug提示!
在这里插入图片描述
学会了进入,我们先了解一下gdb模式如何退出:quit/ctrl+d命令
在这里插入图片描述
在gdb模式下万能的
ctrl+c命令会失去效果,摁一万次也不能成功退出gdb模式。
此时我们可以通过输入
quit命令,或者直接使用ctrl+d**的方式退出。

gdb下增加断点:b X。
gdb下查看断点:info b。
gdb下删除断点:d X。
在这里插入图片描述
gdb下运行程序:r
gdb下逐句执行:n(vs中F10)
gdb下逐条执行:s(vs中F11)
在这里插入图片描述
gdb下逐断点、逐程序执行:c
在这里插入图片描述

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

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

相关文章

实时频谱分析-2.3实时频谱分析

实时频谱分析 频谱分析要想归入实时类别中&#xff0c;必须没有间隙地、不确定地处理关心的频宽内包含的所有信息。RSA 必须获得时域波形中包含的全部信息&#xff0c;把信息转换成频域信号。实时完成这一点必须满足多个重要的信号处理要求&#xff1a; 1&#xff09;提供足够…

【计算思维题】少儿编程 蓝桥杯青少组计算思维真题及详细解析第3套

少儿编程 蓝桥杯青少组计算思维题及详细解析第3套 1、浩浩的左手边是 A、兰兰 B、贝贝 C、青青 D、浩浩 答案:B 考点分析:主要考查小朋友们的观察能力,从给定的图中可以看到:浩浩的左手边是贝贝,所以答案B 2、2 时 30 分,钟面上时针和分针形成的角是什么角 A、钝角…

与vCenter无法通讯时更改虚拟机的网络配置

客户的VCSA由于虚拟机的配置问题导致无法启动&#xff0c;需要通过重新创建VCSA的虚拟机配置的方式来恢复。但是&#xff0c;由于ESXi主机上的所有物理网口都已分配给了分布式网络交换机&#xff0c;在重建虚拟机配置时不能指定标准交换机的端口组来配置网络。而如果将虚拟机的…

找C++程序员工作被卡学历怎么办?我来分享一下实用的方法

当学历低的程序员找C程序员工作时&#xff0c;最担心的问题就是学历卡关。但只有资深的人力资源经理才知道那个行业内的潜规则。对于学历低的程序员来说&#xff0c;这是简直是很难逾越的关卡。 企业招聘程序员时&#xff0c;对学历的要求几乎全是本科及以上学历。这让学历低的…

C++11 列表初始化initializer_list

引子 C11&#xff0c;是继C98后的一次有力更新&#xff0c;引进了很多好用的语法&#xff0c;STL也添加了几个新容器&#xff0c;也解决了很多的问题。本篇博客就学习一下C11列表初始化的新语法和 initializer_list 文章目录 引子一. 列表初始化二. initializer_list结束语 一…

接口测试的流程?怎么设计接口测试用例?两张图给你讲的明明白白

目录 一、简介 二、接口测试的流程 三、为什么要写用例 四、接口用例设计 一、简介 在开始接口测试之前&#xff0c;我们想一下&#xff0c;接口测试的流程是什么&#xff1f;说到这里&#xff0c;有些人就会产生好奇和疑问&#xff0c;心里mmp&#xff1a;接口测试要什么流…

详细的谈谈,软件测试定义、目的及原则。

1.软件测试定义 软件测试就是在产品上线前&#xff0c;对软件需求、设计方案和编码实现的核查。软件测试的定义 软件测试是为了发现错误而执行程序的过程使用人工或自动方式来运行并测试某个系统&#xff0c;以此来检验系统是否满足规定的需求并确定预期结果与实际结果的差异 …

WEB安全:深入反射式dll注入技术

一、前言 dll注入技术是让某个进程主动加载指定的dll的技术。恶意软件为了提高隐蔽性&#xff0c;通常会使用dll注入技术将自身的恶意代码以dll的形式注入高可信进程。 常规的dll注入技术使用LoadLibraryA()函数来使被注入进程加载指定的dll。常规dll注入的方式一个致命的缺陷…

你不会还不知道如何用Python写一个切水果的小游戏吧

目录 引言 一、需要导入的包 二、窗口界面设置 三、随机生成水果位置 四、绘制字体 五、玩家生命的提示 六、游戏开始与结束的画面 七、游戏主循环 引言 水果忍者的玩法很简单&#xff0c;尽可能的切开抛出的水果就行。 今天小五就用python简单的模拟一下…

linux centos 安装zookeeper服务

一、进入官网&#xff1a;Apache ZooKeeper 二、下载安装包 可以使用wget 下载&#xff0c;我这里服务器的原因就不使用了&#xff0c;直接在网页使用http下载&#xff0c;然后通过xftp上传到服务器 下载完成后通过xftp上传到linux服务器 三、解压 tar -zxvf apache-zookeepe…

520中国劲酒携手撒贝宁直播探厂,共同见证健康跑活动启幕

5月20日是“网络情人节”,每年一度的 520,所有人都沉在真爱告白的浓情氛围当中,对于全中国的劲酒爱好者来说,520 却有着不一样的意义,每年 520 劲粉节,中国劲酒以爱之名,号召和鼓励劲粉们培养持之以恒的健康生活方式。      520 当日,总台央视主持人撒贝宁来到了湖北大冶市…

新手要学网络安全应该从哪学起?

写在开篇 本人10 年工作经验&#xff0c; 擅长 Web 安全攻防、渗透领域&#xff0c; 在金融领域的安全有丰富的实战经验。从事在线教育 3 年多培养学员过万&#xff0c;讲解清晰透彻&#xff0c;课程干货内容多&#xff0c;辅导学员耐心细致 我为啥说自学黑客&网络安全&a…

SSM框架学习之Mybatis

SSM Spring SpringMVC Mybatis&#xff0c;这是一种常用的Java Web开发框架组合。Spring是一个轻量级的IoC和AOP容器框架&#xff0c;SpringMVC是基于Spring的MVC框架&#xff0c;Mybatis是一种ORM(Object Relational Mapping)框架&#xff0c;用于在Java应用中管理数据库。…

libvirt job机制浅析

libvirt 中&#xff0c;job 机制用于处理和跟踪针对虚拟机域&#xff08;domain&#xff09;的长时间操作&#xff0c;如迁移、快照、保存&#xff0c;热插拔等。job 机制的主要目的是确保在同一时间只有一个长时间操作可以执行&#xff0c;从而避免竞争条件和不一致性问题。 …

C嘎嘎~~[类和对象 精华篇]

类和对象 精华篇 static成员引入特点问题收尾 友元友元函数友元类 内部类理解 类和对象 static成员 引入 &#x1f5e8;️[题目] 实现一个类&#xff0c;计算程序中创建出了多少个类对象 先分析一下题目: 程序运行中, 有对象的创建, 也有对象的销毁 ⇒ 对应下来就是 构造,拷…

linux服务器断电重启后,发现时间误差八小时

文章目录 问题现象排查与解决时间同步与设置服务器时钟介绍 问题现象 客户的服务器已部署好平台&#xff0c;放入了机房&#xff0c;运行正常。服务器系统时间设置东八区&#xff08;CST&#xff09;&#xff0c;时间日期也已修改正确客户是我省的某小县城&#xff0c;某台晚上…

28 KVM管理系统资源-绑定QEMU进程至物理CPU

文章目录 28 KVM管理系统资源-绑定QEMU进程至物理CPU28.1 概述28.2 操作步骤 28 KVM管理系统资源-绑定QEMU进程至物理CPU 28.1 概述 QEMU主进程绑定特性是将QEMU主进程绑定到特定的物理CPU范围内&#xff0c;从而保证了运行不同业务的虚拟机不会干扰到邻位虚拟机。例如在一个…

ArcMap:第一届全国大学生GIS技能大赛(滁州学院)详解-下午题

目录 01 题目 02 数据 2.1 主要沟谷文件 2.2 DEM数字高程文件 2.3 气象站点数据 2.4 系统设计相关的DLL等文件 03 思路 3.1 作物生长条件的思路 3.1.1 对于条件1 3.1.2 对于条件2 3.1.3 对于条件3 3.1.4 对于条件4 3.2 水系的提取 3.3 种植面积的计算 04 实操 …

linux下cpu占用率100%怎么解决?

在实际的生产环境中&#xff0c;常常会遇到服务器CPU爆满的问题&#xff0c;这时候&#xff0c;正确的排查方法&#xff0c;有助于快速的定位问题。 1、找到最耗CPU的进程 使用top命令查看系统总体的CPU和内存使用情况&#xff0c;以及各个进程的资源使用情况。 2、找到最耗…

迈向5.5G丨美格智能持续创新,为智能世界创造新价值

5月11日&#xff0c;2023 “高通&美格智能物联网技术开放日”深圳站活动举行&#xff0c;美格智能高级产品总监在活动中发表题为《迈向5.5G&#xff0c;智联新未来》的主题演讲&#xff0c;分享了美格智能在5G技术演进中的创新实践。 ▲美格智能高级产品总监 刘伟鹏 ▌技术…