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

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给已存在的断点添加条件

在这里插入图片描述

后面跟断点编号

相关文章:

Linux:调试器-gdb/cgdb

文章目录 一、编译成debug1、-g 选项 二、gdb调试命令1、在CentOS系统下检查安装gdb2、进入gdb模式3、quit 退出gdb4、list (简写 l)显示文件内容5、b 打断点6、 r / run运行程序7、c 让程序直接运行完 三、cgdb1、info b查看打的所有断点2、d 删除断点3…...

『VUE』30. 生命周期的介绍(详细图文注释)

目录 生命周期生命周期的8阶段生命周期小例子总结 欢迎关注 『VUE』 专栏,持续更新中 欢迎关注 『VUE』 专栏,持续更新中 生命周期 每个 Vue 组件实例在创建时都需要经历一系列的初始化步骤,比如设置好数据侦听,编译模板&#xf…...

Python 人脸检测:使用 Dlib 和 OpenCV

简介 本文用Python、Dlib 和 OpenCV 库来检测图像中的人脸,并在人脸上绘制矩形框进行窗口显示。 环境准备 在开始之前,请确保您的计算机上已安装 Python。此外,您还需要安装以下库: dlib:一个包含多种机器学习算法…...

【大数据学习 | flume】flume的概述与组件的介绍

1. flume概述 Flume是cloudera(CDH版本的hadoop) 开发的一个分布式、可靠、高可用的海量日志收集系统。它将各个服务器中的数据收集起来并送到指定的地方去,比如说送到HDFS、Hbase,简单来说flume就是收集日志的。 Flume两个版本区别: ​ 1&…...

torch.is_storage()

torch.is_storage() 判断给定的对象是否是一个 PyTorch 存储对象 PyTorch 存储对象:PyTorch 中,存储对象(Storage)是一个低级别的对象,它表示一个存储数据的连续内存块。存储对象不包含任何关于数据如何解释的信息&a…...

2411rust,编译时自动检查配置

原文 Cargo和编译器团队很高兴地宣布,从Rust1.80(或nightly-2024-05-05)开始,会自动检查每个可访问的#[cfg],看看是否与期望的配置名和值匹配. 这帮助验证crate,是否正确处理不同目标平台或函数的条件编译.它确保在期望和使用设置的配置间保持一致,帮助在开发过程的早期抓住潜…...

在 Ubuntu 中用 VSCode 配置 C 语言项目的编译与调试(详解教程)

目录 一、准备工作二、配置 VSCode 的编译任务三、配置 VSCode 的调试任务四、编译与调试流程五、常见问题排查六、总结 在 C 语言开发过程中,调试与编译是不可缺少的环节,而 VSCode(Visual Studio Code)作为一个强大且轻量级的编…...

MATLAB绘制克莱因瓶

MATLAB绘制克莱因瓶 clc;close all;clear all;warning off;% clear all rand(seed, 100); randn(seed, 100); format long g;% Parameters u_range linspace(0, 2*pi, 100); v_range linspace(0, pi, 50); [U, V] meshgrid(u_range, v_range);% Parametric equations for t…...

HTML5实现趣味飞船捡金币小游戏(附源码)

文章目录 1.设计来源1.1 主界面1.2 游戏中界面1.2 飞船边界框效果 2.效果和源码2.1 动态效果2.2 源代码 源码下载 作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/article/details/143799554 HTML5实现趣味飞船捡金币小游戏(附源码)&…...

Excel表数学于三角函数、统计函数

一、数学与三角函数 函数说明ABS返回数值的绝对值ACOS反余弦函数ACOSH反双曲余弦函数ASIN反正弦函数ASINH反双曲正弦函数ATAN反正切函数ATAN2以 x、y 坐标返回反正切值ATANH反双曲正切函数CEILING向上舍入(指定倍数的整数)COMBIN组合公式COS余弦函数COS…...

小试银河麒麟系统OCR软件

0 前言 今天在国产电脑上办公,需要从一些PDF文件中复制文字内容,但是这些PDF文件是图片转换生成的,不支持文字选择和复制,除了手工输入,我们还可以使用OCR。 1 什么是OCR OCR (Optical Character Recogni…...

Dubbo RPC线程模型

消费端线程模型,提供者端线程模型 消费端线程模型 对 2.7.5 版本之前的 Dubbo 应用,尤其是一些消费端应用,当面临需要消费大量服务且并发数比较大的大流量场景时(典型如网关类场景),经常会出现消费端线程…...

三角波生成函数

% 设置时间范围和采样频率 t 0:0.01:2; % 时间从0到2秒,步长为0.01秒% 定义频率 f 和角频率 theta f 5; % 频率为5Hz theta 2 * pi * f * t;% 初始化输出向量 y zeros(size(t));% 根据给定的公式计算 y for k 1:fy y (-1)^(k-1)*(2 /(k * pi)) * sin(k * the…...

使用Python实现对接Hadoop集群(通过Hive)并提供API接口

安装必要的库 首先,确保已经安装了以下库: pip install flask pip install pyhive代码实现 1. app.py(主应用文件) from flask import Flask, jsonify, request, abort from pyhive import hive import re from datetime impo…...

Qt学习笔记(四)多线程

系列文章目录 Qt开发笔记(一)Qt的基础知识及环境编译(泰山派) Qt学习笔记(二)Qt 信号与槽 Qt学习笔记(三)网络编程 Qt学习笔记(四)多线程 文章目录 系列文章…...

java的小数计算如何保证精度不丢失

前言 学java的肯定都知道,要保证小数运算精度不丢失我们得用BigDecimal对象。这篇文章就分析一下为什么用浮点数会造成精度丢失?BigDecimal是怎么解决精度丢失问题的?下面我们一起看看吧! 浮点数的表示 浮点数在计算机中通常采用 IEEE 75…...

分布式----Ceph应用(下)

目录 创建 Ceph 对象存储系统 RGW 接口 1、对象存储概念 2、创建 RGW 接口 //在管理节点创建一个 RGW 守护进程(生产环境下此进程一般需要高可用,后续介绍) //开启 httphttps ,更改监听端口 //创建 RadosGW 账户 //S3 接口…...

小鹏汽车嵌入式面试题及参考答案

static 变量放在哪个段中? 在 C 和 C++ 等编程语言中,static 变量根据其定义的位置不同放置的段也不同。对于全局的静态变量(在函数体外定义的静态变量),它会被放在数据段(.data 段或者.bss 段)。如果这个静态变量被初始化了非零值,那么它会被放在.data 段,这个段存储…...

qt5半成品飞机大战小游戏

最近在学Qt,心血来潮做了个飞机大战小游戏,由于一些资源比较难找,就做了个半成品。效果图如下: 目前已做功能:人物飞机的自由移动,子弹的发射,子弹与敌机的物体碰撞,碰撞特效。 缺少功能&#x…...

一文速学---红黑树

文章目录 一、红黑树简介二、 红黑树特性三、红黑树插入3.1 红黑树为空3.2 父节点为黑色3.3 父节点为红色3.3.1 父亲和叔叔都是红色3.3.2 父节点为红色,叔叔节点为黑色3.3.2.1 父节点在左节点,插入节点在父亲左节点3.3.2.2 父节点在左节点,插…...

效率革命:设计师必备的Sketch批量命名神器RenameIt完全指南

效率革命:设计师必备的Sketch批量命名神器RenameIt完全指南 【免费下载链接】RenameIt Keep your Sketch files organized, batch rename layers and artboards. 项目地址: https://gitcode.com/gh_mirrors/re/RenameIt 在现代UI/UX设计流程中,保…...

C++ 内联函数的性能影响

C内联函数的性能影响探析 在追求高效代码的C开发中,内联函数因其消除函数调用开销的特性而备受关注。通过将函数体直接嵌入调用点,内联函数能显著提升程序性能,尤其在频繁调用的场景下。过度或不恰当的内联也可能导致代码膨胀或缓存命中率下…...

基于Matlab的11种图像清晰度评价指标:直接可运行,联系我

基于matlab图像清晰度评价指标。 一共11种。 程序已调通,可直接运行。 需要直接联系。 基于matlab图像清晰度评价指标。 一共11种。 程序已调通,可直接运行。 需要直接联系。 图像剃度的清晰度评价(EOG, Roberts, Tenengrad, Brenner,Variance, Laplace,…...

AutoSAR实战:NVRAM Manager配置避坑指南(附完整代码示例)

AutoSAR实战:NVRAM Manager配置避坑指南(附完整代码示例) 在汽车电子开发领域,AutoSAR框架的NVRAM Manager(NvM)模块是管理非易失性数据的关键组件。许多工程师在初次配置时容易陷入性能陷阱和功能误区&…...

像素幻梦·创意工坊应用场景:复古风APP启动页加载动画AI生成方案

像素幻梦创意工坊应用场景:复古风APP启动页&加载动画AI生成方案 1. 引言:像素艺术的复兴与AI赋能 在移动应用设计领域,复古像素风格正经历一场文艺复兴。从独立游戏到主流应用,越来越多的产品选择用像素艺术打造独特的品牌识…...

CentOS7-IP配置记录

简要说明 本文章主要记录CentOS7系统在桥接网络类型下的IP配置测试,主要分为静态和动态配置,以下部署配置仅作参考,可根据实际情况调整。 相关文章 CentOS7部署参考文章:VMware-CentOS7最小化安装记录 CentOS7指令参考文章&am…...

开发者社区生存手册:从潜水到活跃贡献者的5个关键步骤

开发者社区生存手册:从潜水到活跃贡献者的5个关键步骤 在数字时代的代码丛林里,开发者社区如同一个个闪烁着智慧火光的营地。你可能已经加入了几十个Slack频道,关注了无数技术大牛的Twitter,在GitHub上star了上百个仓库&#xff0…...

3步搞定Qobuz高品质音乐下载:QobuzDownloaderX-MOD完全指南 [特殊字符]

3步搞定Qobuz高品质音乐下载:QobuzDownloaderX-MOD完全指南 🎵 【免费下载链接】QobuzDownloaderX-MOD Downloads streams directly from Qobuz. Experimental refactoring of QobuzDownloaderX by AiiR 项目地址: https://gitcode.com/gh_mirrors/qo/…...

ArcGIS Desktop许可证被占满?别慌,这3个方法帮你快速释放Advanced许可(附详细步骤)

ArcGIS Desktop高级许可被占用?3种高效解决方案与实战技巧 当你正在赶制项目报告或处理关键地理数据时,突然弹出的"All ArcGIS for Desktop Advanced licenses are in use"错误提示足以让任何GIS专业人士心跳加速。这种情况往往发生在团队共享…...

别再手动调坐标轴了!Excel两列数据一键生成折线图的正确姿势(附散点图对比)

Excel两列数据可视化:折线图与散点图的精准选择与高效操作 每次月度汇报前,你是否也经历过这样的场景?面对两列关键业务数据,明明只是简单画个趋势图,却在调整坐标轴上耗费半小时——选错图表类型导致横纵坐标错位&…...