当前位置: 首页 > 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 父节点在左节点,插…...

FPGA新手避坑指南:用SPWM驱动电机时,你的死区时间加对了吗?

FPGA电机驱动实战:SPWM死区时间设计的核心要点与避坑策略 在数字电源和电机控制领域,FPGA因其并行处理能力和精确时序控制而备受青睐。许多工程师在成功实现SPWM信号生成后,往往忽略了驱动电路中最致命的一环——死区时间设置。我曾亲眼见证过…...

【技术解析】方差分析:从统计表解读到业务决策的实战指南

1. 方差分析:从统计表到业务决策的实战指南 第一次接触方差分析时,我也被那些统计术语和公式搞得晕头转向。直到有一次,产品经理拿着A/B测试数据问我:"新版页面真的比旧版好吗?好多少?"我才意识到…...

STM32H7 串口 DMA 双缓冲 空闲中断 实战解析 Hal库

1. STM32H7串口DMA双缓冲方案的必要性 在嵌入式系统中,串口通信是最基础也最常用的外设之一。传统的中断接收方式虽然简单直接,但在处理高速数据流时存在明显短板。每次接收到一个字节就触发一次中断,当波特率较高时(比如115200甚…...

【限时解密】Midjourney Anthotype印相黄金比例:1:1.618构图×植物色素衰减曲线=不可复制的复古质感

更多请点击: https://intelliparadigm.com 第一章:Midjourney Anthotype印相的本质溯源与时代语境 Anthotype(植物感光印相)是一种源于19世纪的古老摄影工艺,利用植物提取物(如甜菜根、黑醋栗或蒲公英花汁…...

【紧急预警】PlayAI新政策已生效!ElevenLabs未披露的商用语音水印机制曝光——2024年AI语音合规红线与替代方案速览(仅剩72小时窗口期)

更多请点击: https://intelliparadigm.com 第一章:【紧急预警】PlayAI新政策已生效!ElevenLabs未披露的商用语音水印机制曝光——2024年AI语音合规红线与替代方案速览(仅剩72小时窗口期) 水印机制逆向验证结果 通过对…...

八大网盘直链获取开源工具全面指南:如何高效管理你的云端文件下载

八大网盘直链获取开源工具全面指南:如何高效管理你的云端文件下载 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动…...

保姆级教程:在Ubuntu 20.04上用PyTorch 1.12和YOLOv5s完整训练COCO数据集(附时间预估与常见坑点)

从零开始:Ubuntu 20.04下YOLOv5s训练COCO数据集的实战指南 引言 在计算机视觉领域,目标检测一直是核心研究方向之一。YOLO(You Only Look Once)系列算法因其出色的实时性和准确性,成为工业界和学术界的宠儿。本文将带你从零开始,在…...

如何快速解决Visual C++运行库安装问题:终极一站式解决方案指南

如何快速解决Visual C运行库安装问题:终极一站式解决方案指南 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过应用程序无法启动&…...

SteamCleaner终极指南:3步轻松释放100GB游戏磁盘空间

SteamCleaner终极指南:3步轻松释放100GB游戏磁盘空间 【免费下载链接】SteamCleaner :us: A PC utility for restoring disk space from various game clients like Origin, Steam, Uplay, Battle.net, GoG and Nexon :us: 项目地址: https://gitcode.com/gh_mirr…...

政府AI决策透明度如何影响公众信任?实证研究揭示关键机制

1. 项目概述:当算法成为“看不见的法官”在公共服务的数字化转型浪潮中,人工智能(AI)正从辅助工具演变为核心决策者。想象一下这样的场景:你提交了一份社会福利申请,原本需要数周的人工审核,现在…...