Linux:调试器-gdb/cgdb

文章目录

    • 一、编译成debug
        • 1、-g 选项
    • 二、gdb调试命令
        • 1、在CentOS系统下检查安装gdb
        • 2、进入gdb模式
        • 3、quit 退出gdb
        • 4、list (简写 l)显示文件内容
        • 5、b 打断点
        • 6、 r / run运行程序
        • 7、c 让程序直接运行完
    • 三、cgdb
        • 1、info b查看打的所有断点
        • 2、d 删除断点
        • 3、n / next 逐过程
        • 4、s/step 逐语句
    • 四、调试技巧
        • 1、watch 修改时显示
        • 2、 set var 调试时修改值
        • 3、条件断点
        • 4、condition给已存在的断点添加条件

一、编译成debug

Linux 下我们编译好的代码,无法直接调试!
gcc/g++ 默认的工作模式是release模式

1、-g 选项

在编译时加上-g 选项
在这里插入图片描述
-g后生成的.o 文件被链接后的可执行程序占用的空间会变大

查看调试信息:
在这里插入图片描述
-g选项,让最后形成的可执行程序,添加调试信息—debug模式!

二、gdb调试命令

1、在CentOS系统下检查安装gdb

使用gdb --version命令来检查
在这里插入图片描述
显示没有找到,就说明没有安装

使用 sudo yum install gdb 来安装
在这里插入图片描述

2、进入gdb模式

gdb + 链接好的可执行程序文件名:进入gdb模式
在这里插入图片描述

3、quit 退出gdb

quit:退出
在这里插入图片描述

4、list (简写 l)显示文件内容

在这里插入图片描述
指定 行号从指定行号开始显示
在这里插入图片描述
从第1行开始打印内容,然后直接回车把文件内容全部打印出来

5、b 打断点

b 后面跟行好在指定行打断点
在这里插入图片描述

6、 r / run运行程序

在这里插入图片描述
会在断点处停下来

7、c 让程序直接运行完

在这里插入图片描述

三、cgdb

在这里插入图片描述
cgdb跟gdb的使用方法一样,但cgdb更好观察代码,会分屏显示代码
在这里插入图片描述
在这里插入图片描述

1、info b查看打的所有断点

在这里插入图片描述
断点编号 ------ 断点类型---------------------------是否使能----断点地址--------------------------------打的什么断点

2、d 删除断点

删断点只能根据断点编号来删
在这里插入图片描述
gdb不退出断点编号依次递增

3、n / next 逐过程
4、s/step 逐语句

四、调试技巧

1、watch 修改时显示

执⾏时监视⼀个表达式(如变量)的值。如果监视的表达式在程序运⾏期间的值发⽣变化,GDB会暂停程序的执⾏,并通知使⽤者

2、 set var 调试时修改值
3、条件断点

在这里插入图片描述

4、condition给已存在的断点添加条件

在这里插入图片描述

后面跟断点编号

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于差分、粒子群算法下的TSP优化对比

TSP问题,即旅行商问题(Traveling Salesman Problem),是数学领域中的一个著名问题。以下是对TSP问题的详细解释: 一、问题定义 假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路径的…

17.100ASK_T113-PRO 配置QT运行环境(三)

前言 1.打开QT,新建项目. 做成以下效果,会QT都没有问题吧 编译输出: /home/book/LED_and_TempHumi/build-LED_and_TempHumi-100ask-Debug LED_and_TempHumi 2.下载程序与测试 设置运行环境 export QT_QPA_PLATFORMlinuxfb 这个地方还需要加字体,不然不会显示字体.

智慧社区平台系统提升物业管理效率与居民生活质量

内容概要 智慧社区平台系统是为应对现代城市管理挑战而诞生的重要工具。随着城市化进程的加快,传统的物业管理方式已经难以满足日益增长的居民需求和管理复杂性。因此,引入智能化管理手段显得尤为重要。这个系统不仅仅是一个简单的软件,它是…

远程jupyter lab的配置

打开虚拟环境 conda activate test 在环境下安装ipykernel软件包,这个软件包允许jupyter notebookl使用特定环境的python版本。 conda install ipykernel 将该环境添加到Jupyter Notebook中 python -m ipykernel install --user --nametest --display-name&quo…

python+Django+MySQL+echarts+bootstrap制作的教学质量评价系统,包括学生、老师、管理员三种角色

项目介绍 该教学质量评价系统基于Python、Django、MySQL、ECharts和Bootstrap技术,旨在为学校或教育机构提供一个全面的教学质量评估平台。系统主要包括三种角色:学生、老师和管理员,每个角色有不同的功能权限。 学生角色:学生可…

找不到vcruntime140.dll怎么办,彻底解决vcruntime140.dll丢失的5种方法

当计算机系统中无法找到vcruntime140.dll这个特定的动态链接库文件时,可能会引发一系列运行问题,具体表现形式多样且影响范围较广。对于依赖于该文件运行的各类软件应用来说,缺失vcruntime140.dll将直接导致程序无法正常启动或执行&#xff0…

设计模式-Adapter(适配器模式)GO语言版本

前言 个人感觉Adapter模式核心就在于接口之间的转换。将已有的一些接口转换成其他接口形式。并且一般用于对象上,而不是系统上 问题 就用一个简单的问题,懂数据结构的同学可能知道双端队列。那么就用双端队列实现一个栈(stack)或…

表格的选择弹窗,选中后返显到表格中

项目场景: 提示:这里简述项目相关背景: 表格的下拉框可以直接显示选项,那如果选择框不是下拉的,而是弹窗,那么在表格中如何返显呢? 问题描述 如上图所示,点击表格中的选择&#xf…

4.STM32之通信接口《精讲》之USART通信---实验串口发送程序

本节将进行实战,基础了解请查看第1,2,3节(Whappy) 开始背!! USART ---》全双工 异步/同步 点对点 C语言基础printf用法,这节将用到printf的重定向,来打印到串口助手上…

搭建MC服务器

局域网中玩MC,直接自己创建房间开启局域网就可以了。如果想开一个24小时不关机的服务器呢?其实最开始我是想在windows云服务器,图形化界面运行一个开启局域网即可。可能是云服务器上没有显卡,还是其他什么原因,游戏打开…

css 使用图片作为元素边框

先看原始图片 再看效果 边框的四个角灭有拉伸变形,但是图片的中部是拉伸的 代码 border-style: solid;/* 设置边框图像的来源 */border-image-source: url(/static/images/mmwz/index/bk_hd3x.png);/* 设置如何切割图像 */border-image-slice: 66;/* 设置边框的宽度 */border…

通用定时器---输出比较功能

目录 一、概念 二、输出比较的8种模式 三、输出比较输出PWM波形的基本结构 配置步骤 四、示例代码 一、概念 OC(OutPut Compare)输出比较。输出比较可以通过比较CNT与CCR寄存器的关系,来对输出电平进行置1/置0/翻转的操作,可…

【网页设计】CSS3 进阶(动画篇)

1. CSS3 2D 转换 转换(transform)是CSS3中具有颠覆性的特征之一,可以实现元素的位移、旋转、缩放等效果 转换(transform)你可以简单理解为变形 移动:translate旋转:rotate缩放&#xf…

探索 HTML 和 CSS 实现的 3D旋转相册

效果演示 这段HTML与CSS代码创建了一个包含10张卡片的3D旋转效果&#xff0c;每张卡片都有自己的边框颜色和图片。通过CSS的3D变换和动画&#xff0c;实现了一个动态的旋转展示效果 HTML <div class"wrapper"><div class"inner" style"-…

WTV芯片在智能电子锁语音留言上的应用方案解析

一、概述 电子锁的留言功能允许用户通过语音或文字方式给其他家庭成员留下信息。这项功能可以增强家庭成员之间的沟通&#xff0c;特别是在忙碌的家庭生活中提供便利。 WTV是一款功能强大的高品质语音芯片&#xff0c;采用了高性能32位处理器、最高频率可达120MHz。具有低成本、…

Ajax的相关内容

一、Ajax的使用步骤 1.创建XML对象 const xhrnew XMLHttpRequest(); 2.监听事件&#xff0c;处理响应 3.准备发送请求 true表示异步 ajax中永远是异步&#xff0c;永远是true 4.发送请求 二、GET和POST请求 三、JSON的三种形式 四、JSON的方法 五、跨域 六、XHR的属性和方法…

群控系统服务端开发模式-应用开发-前端级别功能开发

一、添加视图 在根目录下src文件夹下views文件夹下param文件夹下grade文件夹下&#xff0c;新建index.vue&#xff0c;代码如下 <template><div class"app-container"><div class"filter-container" style"float:left;"><…

【含开题报告+文档+PPT+源码】基于springboot的教师评价系统的设计与实现

开题报告 随着信息技术的迅猛发展&#xff0c;教育信息化已成为现代教育的必然趋势。教研室作为高校教学管理的重要机构&#xff0c;肩负着提升教学质量、推动教学改革的重要使命。然而&#xff0c;传统的教学管理方式往往存在效率低下、数据分散、管理不便等问题&#xff0c;…

Nginx 使用入门介绍

大家好&#xff0c;我是G探险者&#xff01; 今天聊一聊nginx. Nginx 是一款高性能的 Web 服务器、反向代理服务器以及负载均衡器。它因其轻量级、稳定性和高并发处理能力&#xff0c;在全球范围内得到了广泛应用。许多大型网站&#xff08;如 Netflix、Dropbox 和 WordPress…

Elasticsearch 重建索引 数据迁移

Elasticsearch 重建索引 数据迁移 处理流程创建临时索引数据迁移重建索引写在最后 大家都知道&#xff0c;es的索引创建完成之后就不可以再修改了&#xff0c;包括你想更改字段属性或者是分词方式等。那么随着业务数据量的发展&#xff0c;可能会出现需要修改索引&#xff0c;或…