linux中的调试工具gdb

news2024/12/24 20:32:39

目录

1.背景知识补充

2.使用

知识补充


1.背景知识补充

1.gcc下编译默认是release方式发布的,无法直接进行调试

如果要以debug方式发布,需要携带-g

可以使用grep查询

因为携带debug信息,其文件体积要大一些 

2.使用

1.gdb 可执行程序   进入调试,这里gdb后面跟的不是源代码,而是由源代码编译出来的可执行程序

2.q                          退出调试

3. list(简写为l)行号:显示binFile源代码,接着上次的位置往下列,每次列10行。如果后面添加行号,它会将行号所在的语句放在显示出来的代码的较为中间部分,所有当我们l 0时,因为前面没有代码了,所有效果就等效于从第一行开始显示10行


4.list(简写为l) 函数名:列出某个函数的源代码。


5.run(简写为r):运行程序,会在下一个断点处停止运行。


6.next(简写为n):单条执行。逐过程


7.step(简写为s):逐语句,会进入函数调用


8.break(简写为b) 行号:在某一行设置断点,如果调了多个文件,可以使用b 文件名 行号 来给其它文件打断点


9.break(简写为b)函数名:在某个函数开头设置断点


10.info break(简写为 i b) :查看断点信息。


11.finish:执行到当前函数返回,然后停下来等待命令


12print(简写为p):打印表达式的值,通过表达式可以修改变量的值或者调用函数p 变量:打印变量值。


13.set var:修改变量的值,用法是set var  i = 10 这样


14.continue(或c):从当前位置开始连续而非单步执行程序


15.run(或r):从开始连续而非单步执行程序


16.delete(简写d):删除所有断点


17.delete (简写d)断点编号:删除序号为n的断点


18.disable 断点编号:禁用断点


19.enable 断点编号:启用断点


20.info(或i) breakpoints:参看当前设置了哪些断点(效果和上面那个info break其实是一样的)


21.display 变量名:跟踪查看一个变量,每次停下来都显示它的值


22.undisplay:取消对先前设置的那些变量的跟踪


23.until X行号:跳至X行,如果所跳至的行号已经不在该函数内,那么使用until后程序会先执行到该函数返回然后停止


24.breaktrace(或bt):查看各级函数调用及参数

 通过倒数的几行,我们可以看到我们从main函数中进入到了addtop函数中


25.info(i) locals:查看当前栈帧局部变量的值

知识补充

gdb会记忆上一次进行的操作,比如我使用 s,按回车键就会继续产生按s的效果,如果我们先输入了一个 l 0,继续按回车就会产生继续按l的效果

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

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

相关文章

【喜报】恭喜云贝两位学员通过Oracle 19c OCP考试

Oracle 19c OCP成绩展示 课程特色 课程训练周期为两个半月,一年内循环听课,直至掌握技能; 专业讲师亲授OCP技能知识点,工作经验分享 课下布置作业(涵盖考点)辅助学生从实践能力上提升水平 理论培训实验操作,以原理和…

Kotlin设计模式:代理模式详解

Kotlin设计模式:代理模式详解 在软件开发中,设计模式是解决常见问题的一种优雅方法。本文将介绍Kotlin中的代理模式(Proxy Pattern),其应用场景,以及如何通过实例代码实现这一模式。 代理模式的目的 代理…

模拟面试之外卖点单系统(高频面试题目mark)

今天跟大家分享一个大家简历中常见的项目-《外卖点单系统》,这是一个很经典的项目,有很多可以考察的知识点和技能点,但大多数同学都是学期项目,没有实际落地,对面试问题准备不充分,回答时抓不到重点&#x…

学会整理电脑,基于小白用户(无关硬件升级)

如果你不想进行硬件升级,就要学会进行整理维护电脑 基于小白用户,每一个操作点我都会在后续整理出流程,软件推荐会选择占用小且实用的软件 主要从三个角度去讨论【如果有新的内容我会随时修改,也希望有补充告诉我,我…

疲劳驾驶智能识别摄像机

疲劳驾驶智能识别摄像机在道路安全管理中扮演着越来越重要的角色。这些先进的设备不仅仅是简单的监控工具,它们通过先进的技术和算法,有效地识别和预防司机疲劳驾驶,从而大大减少了交通事故的风险。 首先,这些智能识别摄像机采用高…

MySQL数据库初学者指南:从安装到常用命令的飞跃!

本文介绍 MySQL 的安装详细图文教程以及常用命令介绍。 1 MySQL 下载 1、官网下载 下载地址:https://dev.mysql.com/downloads/,选择社区版 目前 MySQL 最新版本为 8.0.23,如果想下载之前的版本可以点击 “Looking for previous GA versions?…

利用LabVIEW和数字孪生技术实现PCB电路板测试

利用LabVIEW和数字孪生技术对PCB电路板进行测试,可以通过动画展示实现测试过程的生动、形象和直观。本文详细说明了如何结合LabVIEW与数字孪生技术进行PCB电路板的测试,包括系统架构、实现方法以及具体展示效果,适合对外展示。 在现代电子制造…

C# 唯一性进程的方法封装(Winform/WPF通用)

C#唯一进程封装 C# 唯一性进程的方法封装 public class UniqueProcess{/// <summary>/// 焦点切换指定的窗口&#xff0c;并将其带到前台/// </summary>/// <param name"hWnd"></param>/// <param name"fAltTab"></para…

linux和Win——显卡驱动、Anaconda及pytorch安装(无需单独安装cuda、cudnn)

今天给新电脑的双系统&#xff08;windows11和ubuntu22.04&#xff09;安装了深度学习环境&#xff0c;在此记录一下。 一、Linux系统 &#xff08;一&#xff09;安装显卡驱动 &#xff08;1&#xff09;在安装Nvidia显卡驱动前&#xff0c;一定要点一下下面的“软件更新器…

达梦(DM8)数据库备份与还原(逻辑备份)二

一、达梦数据库的逻辑备份分四种级别的导出&#xff08;dexp&#xff09;与导入&#xff08;dimp&#xff09;的备份 第一种是&#xff1a;数据库级&#xff1a;导出或导入数据库中所有的对象。主要参数是&#xff1a;FULL 第二种是&#xff1a;用户级别&#xff1a;导出或导…

Kotlin 中的数据类型有隐式转换吗?

在 Kotlin 中&#xff0c;数据类型不可隐式转换。在 Java 中&#xff0c;如果数据是从小到大&#xff0c;是可以隐式转换的&#xff0c;数据类型将自动提升。 下面以 int 类型的数据为例&#xff0c;在 Java 中这样写是可以的&#xff1a; int a 2312; long b a;但是在 Kot…

智能电能表如何助力智慧农业

智能电能表作为智能电网数据采集的基本设备之一&#xff0c;不仅具备传统电能表基本用电量的计量功能&#xff0c;还具备双向多种费率计量功能、用户端控制功能、多种数据传输模式的双向数据通信功能以及防窃电功能等智能化的功能。这些功能使得智能电能表在农业领域的应用具有…

不要升级mmkv1.3.5

腾讯有点不负责任的感觉。1.3.5开始直接ban掉了v1.3.5 / 2024-04-24 Drop armv7 & x86 support.&#xff0c;x86和v7a的支持&#xff08;大概率是这个原因&#xff09;。 从打包后的包解压可以看到&#xff0c;只有arm64-v8a和x64目录里面有库。而1.3.4打包解压后&#x…

【话题】分数限制下,选好专业还是选好学校?

目录 引言&#xff1a;一、专业优先的考量二、学校优先的考量三、个人经历与决策四、综合考虑因素五、建议与策略结论文章推荐 引言&#xff1a; 随着24年高考的落幕&#xff0c;考生们迎来了人生中的重要抉择时刻&#xff1a;选择专业还是选择学校&#xff1f;两者皆重要&…

冷静!42.9分还不是SCI?别被影响因子迷了眼!最新JCR变化有哪些?

2024年发布的JCR变化有哪些&#xff1f; 2024年6月20日&#xff0c;科睿唯安正式发布2024年度《期刊引证报告》&#xff08;JCR™&#xff09;。 首先明确几个基本概念&#xff1a; &#xff08;1&#xff09;2024年发布2023JCR &#xff08;2&#xff09;JCR中有254个学科 …

基于FreeRTOS+STM32CubeMX+LCD1602+MCP4162(SPI接口)的数字电位器Proteus仿真

一、仿真原理图: 二、仿真效果: 三、STM32CubeMX配置: 1)、SPI配置: 2)、时钟配置: 四、软件部分: 1)、主函数: /* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : mai…

3)JDK1.8核心Jar包详细详解

JDK1.8核心Jar包详细介绍 JDK1.8包含jar包核心Jar包rt.jar名称含义内容概览功能与作用注意事项 小结 JDK1.8包含jar包 JDK 1.8&#xff08;Java Development Kit 8&#xff09;包含了多个JAR文件&#xff0c;这些JAR文件是Java开发的核心组成部分&#xff0c;提供必要的类库和…

操纵系统的特征

操纵系统的特征 并发&#xff1a; 一个厨师&#xff08;单核CPU&#xff09;快速切换轮流处理三样菜&#xff08;进程&#xff09;&#xff0c;看起来像同时处理 并行&#xff1a; 有多个厨师&#xff08;多核CPU&#xff09;&#xff0c;每个厨师独立处理一样菜&#xff08;进…

Python爬虫从入门到入狱之爬取知乎用户信息

items中的代码主要是我们要爬取的字段的定义 class UserItem(scrapy.Item):id \ Field()name \ Field()account\_status \ Field()allow\_message\ Field()answer\_count \ Field()articles\_count \ Field()avatar\_hue \ Field()avatar\_url \ Field()avatar\_url\_template…

C#——堆栈和队列详情

堆栈和队列 堆栈 堆栈类表示一个后进先出的对象集合&#xff0c;当需要对项目进行后进先出的访问时&#xff0c;则可以使用堆栈。向堆栈中添加元素称为推入元素&#xff0c;从堆栈中移除元素称为弹出元素。 关键字: Stack stack常用属性 : 属性 描述Count获取堆栈中包含的…