【gdb使用】

gdb使用简介

1 gdb安装与调试

1.1 gdb安装

sudo apt-get install gdb

1.2 gdb 使用

1.2.1 运行代码

若要使用gdb调试代码,在代码编译时需要添加-g选项。

1)调试程序:gdb bin文件名

2)启动调试:run(r)

​ 如果调试的内容有参数,则 :run 执行的命令,例如调试bash的select命令,方式如下:

(gdb)run -c "select name in aaa bbb ccc; do echo $name; done"

1.2.1 断点

有时候断点需要再运行程序之前打

1)b 文件路径:断点行数,例如:

(gdb) b src.c:10

1.2.2 程序执行

1)n:命令一行一行的执行。

2)s:如果有函数,进入函数内部执行,否则和n命令功能一样。

3)c:当程序在某一出停止后,用该指令继续执行,直到遇到断点或者程序结束。

4)u:遇到循环体时,可以使用改命令跳出循环体

5)until n:n为行号,该命令使程序运行直第n行

2 gdb的特殊功能

2.1 显示源码窗口

方法1:
(gdb)layout src方法2:
ctrl + x 和 ctrl + a返回:
ctrl + x + a

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

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

相关文章

《优化接口设计的思路》系列:第1篇—什么是接口缓存

一、缓存的定义: 缓存是一种存储数据的技术,用于提高数据访问的速度和效率。缓存通常存储在内存中,因为内存访问速度远快于磁盘和网络。数据接口通常会使用缓存技术,以降低对后端数据存储和处理的压力,提高系统性能。…

⭐ ▶《强化学习的数学原理》(2024春)_西湖大学赵世钰 Ch3 贝尔曼最优公式 【压缩映射定理】

PPT 截取必要信息。 课程网站做习题。总体 MOOC 过一遍 1、视频 学堂在线 习题 2、过 电子书,补充 【下载:本章 PDF 电子书 GitHub 界面链接】 [又看了一遍视频] 3、总体 MOOC 过一遍 习题 学堂在线 课程页面链接 中国大学MOOC 课程页面链接 B 站 视频链…

c++qt合并两张灰度图像

需求:将两张尺寸相同的灰度图像进行合并,合并后的图像,每个像素点灰度值为两张原图对应像素点灰度值之和。若超过255,则最大为255。 方法一: 将图像读取为cv::Mat,再调用opencv的cv::add方法,进…

【ai】初识pytorch

初识PyTorch 大神的例子运行: 【ai】openai-quickstart 配置pycharm工程 简单例子初识一下Pytorch 好像直接点击下载比较慢? 大神的代码 在这个例子中,首先定义一个线性模型,该模型有一个输入特征和一个输出特征。然后定义一个损失函数和一个优化器,接着生成一些简单的线性…

kotlin `FloatArray` 和 `Array<Float>`

FloatArray 原生数组类型:FloatArray 是 Kotlin 的一种原生数 组类型,专门用于存储浮点数。性能:由于是原生类型,FloatArray 在性能上更高效,因为它直接映射到 Java 的原生浮点数组 float[]。内存使用:Flo…

Golang内存模型与分配机制

简述 mheap为堆,堆和进程是一对一的;mcentral(小mheadp),mcahe(GMP的P私有),分配内存顺序由后向前。 在解决这个问题,Golang 在堆 mheap 之上,依次细化粒度&a…

前端构建工具用得好,构建速度提升 10 倍

今天来盘点一下前端构建工具。 Turbopack Turbopack,由Vercel开源,是下一代高性能的JavaScript应用构建工具,目前用于 Next.js 中。Turbopack旨在通过革新JavaScript应用的打包流程来显著提升应用性能,它专注于缩短加载时间&…

Android RxJava2 整合Retrofit2 与Hilt注入网络模块

1.导入依赖 //Retrofit 整合 RXjavaimplementation com.squareup.retrofit2:adapter-rxjava2:2.9.0implementation io.reactivex.rxjava2:rxjava:2.2.4implementation io.reactivex.rxjava2:rxandroid:2.1.0//Retrofit//Retrofit 核心库implementation("com.squareup.retr…

Python工具箱系列(五十三)

​​水印 水印是一种常见的图片处理需求。当既需要展示,又需要保护知识产权时,就需要使用文字或者图片来打水印。下面的代码展示了文字水印与图片水印的过程。 ​--javascripttypescriptbashsqljsonhtmlcssccppjavarubypythongorustmarkdown from pat…

游戏找不到steam_api64.dll无法继续执行代码的解决方法

在电脑使用过程中,我们可能会遇到一些错误提示,其中之一就是“steam_api64.dll丢失”。那么,steam_api64.dll到底是干嘛的?为什么会丢失?对电脑有什么具体影响?如何解决这个问题?本文将为您详细…

Python基础教程(九):Lambda 函数

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝&#x1f49…

golang:对struct排序的方法

golang对struct排序的方法 以下代码示例,通过对Student 结构体的age字段进行从小到大和从大到小排序 方法一 使用 sort.Slice() 进行排序 package mainimport ("fmt""sort" )type Student struct {name stringage int }func main() {stude…

vivado NODE、PACKAGE_PIN

节点是Xilinx部件上用于路由连接或网络的设备对象。它是一个 WIRE集合,跨越多个瓦片,物理和电气 连接在一起。节点可以连接到单个SITE_, 而是简单地将NETs携带进、携带出或携带穿过站点。节点可以连接到 任何数量的PIP,并且也可以…

基于QT5.12.7的VTK8.2下的VS2015 X64源码编译以及测试

有一段时间没更新博客了,最近在考虑使用VTK作为软件的后处理显示,相比于OSG,VTK在后处理上集成了很多优秀的算法,使用起来比较方便,而且后处理一般不需要太多的交互,所以VTK是一个不错的选择。 之前对VTK了…

【多视图感知】BEVFormer: Learning Bird’s-Eye-View Representation

BEVFormer: Learning Bird’s-Eye-View Representation from Multi-Camera Images via Spatiotemporal Transformers 论文链接:http://arxiv.org/abs/2203.17270 代码链接:https://github.com/fundamentalvision/BEVFormer 一、摘要 本文提出了一种名为BEVFormer的新框架&am…

Android基础-如何获取通话状态

在Android系统中,获取通话状态是开发通信类应用时常见的需求之一。通话状态的获取有助于应用程序在特定情况下执行相应的操作,如调整音量、显示特定界面或执行其他与通话相关的任务。下面将详细阐述在Android中如何获取通话状态,内容将包括所…

数据库-数据定义和操纵-DDL语言的使用

创建一个数据库: create database 数据库名; 选择数据库: use 数据库名; 创建表 create table 表名( ); 添加字段; ALTER TABLE 表名 ADD 新字段名 数据类型 [约束条件] [FIRST|AFTER 已存在字段名] ; 删除字段: ALTER TABLE 表…

智慧班牌系统源码,智慧校园云平台系统,基于小程序原生开发的智慧校园小程序源码

智慧班牌系统,也被称为电子班牌系统,是一款专为学校打造的信息化产品,用于加强学校班级文化建设和班级风采展示。该系统通过整合学校对外宣传、日常互动交流、教师教学办公、课外学习延伸、智能硬件接入等各种服务,为老师、家长、…

数据库原理(数据库设计)——(3)

一、数据库设计概述 1.数据库设计的基本任务和目标 基本任务 根据用户的信息需求、数据库操作需求,设计一个结构合理、使用方便、效率高的数据库。 设计目标 满足用户的应用要求;准确模拟现实世界;能背某个DBMS(数据库管理系统…

使用超声波麦克风阵列预测数控机床刀具磨损

预测性维护是使用传感器数据来推断机器状态,并从这些传感器数据中检测出在故障发生之前存在的缺陷或故障的过程。预测性维护在所有工业领域都是一种日益增长的趋势,包括轴承故障检测、齿轮磨损检测或往复式机器中的活塞磨损等许多其他例子。在预测性维护…