Linux-gdb调试

文章目录

  • 前言
  • 查看(显示)源代码 list/l
  • 运行程序run/r
  • 打断点b
  • 查看断点
  • 删除断点
  • 打开/关闭断点
  • 逐过程 逐语句
  • 查看变量
  • 常显示
  • continue
  • finish
  • until
  • 修改指定变量
  • 退出gdb

前言

GDB,即GNU调试器(GNU Debugger),是GNU开源组织发布的一个强大的UNIX/Linux下的程序调试工具。它使程序员能够跟踪程序执行的过程,查看程序的源代码、汇编代码、变量的值以及内存使用情况等信息,帮助程序员发现并定位程序中的错误。

安装gdb:
在这里插入图片描述
输入gdb -v查看是否安装
在这里插入图片描述
安装好后可以开始调试程序。注意:gdb只能调试debug版本的程序,所以在生成程序时要加上 -g生成debug程序(gcc/g++默认生成的是release版本的程序。)在这里插入图片描述
先写一个C语言的程序,再对它进行调试
在这里插入图片描述

查看(显示)源代码 list/l

先进入gdb
在这里插入图片描述
使用list或l(简写)查看源代码
在这里插入图片描述
l 文件名:行号/函数名 l 行号/函数名
在这里插入图片描述
在这里插入图片描述
直接回车默认最近一条命令
在这里插入图片描述

运行程序run/r

在这里插入图片描述

打断点b

在这里插入图片描述

查看断点

info/i b
在这里插入图片描述
在这里插入图片描述
断点是否被开启 y(开启)n(关闭)

删除断点

delete/d:断点编号
在这里插入图片描述

打开/关闭断点

disable/enable 断点编号(打开/关闭断点)

在这里插入图片描述
关闭断点后Enb列变成n
在这里插入图片描述

逐过程 逐语句

next/n:逐过程(等同vs里面调试的F10键) 不进入函数
在这里插入图片描述
直接回车默认输入n

step/s:逐语句(同VS调试的F11键)进入函数
在这里插入图片描述

查看变量

print/p:查看变量内容或地址

在这里插入图片描述

常显示

display:变量/变量地址

在这里插入图片描述undisplay:编号 (取消常显示)
在这里插入图片描述

continue

continue/c:运行至下一个断点处

在这里插入图片描述

finish

在这里插入图片描述
运行完所在函数就停下来

until

until 行号:跳转到指定行(中间的代码已运行)
在这里插入图片描述

修改指定变量

set var i=xxx
在这里插入图片描述
info local 查看当前栈帧局部变量的值
在这里插入图片描述

bt 查看调用栈
在这里插入图片描述

退出gdb

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

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

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

相关文章

云仓酒庄最新动态:渠道商小沙龙活动持续开展 业务持续稳健发展

原标题:2024年云仓酒庄小沙龙活动持续开展 业务持续稳健发展 在风起云涌的酒类市场中,云仓酒庄以其独特的经营模式和优质的服务,赢得了广大消费者的青睐。而在这背后,云仓酒庄各地小沙龙活动的频繁开展,无疑为其业务的…

命名空间多线程计时(C++基础)

命名空间 不要在头文件内使用using namespace,一定要确保实在一个足够小的作用域下使用,在哪个范围内,比如函数、if语句等,但一定不要在头文件中使用!!! 上述示例中,会调用orange中…

【位运算】【脑筋急转弯】2749. 得到整数零需要执行的最少操作数

作者推荐 视频算法专题 本文涉及知识点 2749. 得到整数零需要执行的最少操作数 给你两个整数:num1 和 num2 。 在一步操作中,你需要从范围 [0, 60] 中选出一个整数 i ,并从 num1 减去 2i num2 。 请你计算,要想使 num1 等于 …

【Spring云原生系列】SpringBoot+Spring Cloud Stream:消息驱动架构(MDA)解析,实现异步处理与解耦合

🎉🎉欢迎光临,终于等到你啦🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟持续更新的专栏《Spring 狂野之旅:从入门到入魔》 &a…

FreeRTOS学习笔记-基于stm32(5)列表和列表项

一、列表与列表项简介 列表是FreeRTOS中的一种数据结构,类似双向循环链表。用来跟踪FreeRTOS中的任务。列表项就是存放在列表中的项目。 二、列表 列表结构体: typedef struct xLIST {listFIRST_LIST_INTEGRITY_CHECK_VALUE //校验值c…

强化学习工具箱(Matlab)

1、Get Started 1.1、MDP环境下训练强化学习智能体 MDP环境如下图 每个圆圈代表一个状态每个状态都有上或下的选择智能体从状态 1 开始智能体接收的奖励值为图中状态转移的值训练目标是最大化累计奖励 (1)创建 MDP 环境 创建一个具有 8 个状态和 2 …

基于深度学习的番茄叶片病害检测系统(含UI界面、yolov8、Python代码、数据集)

项目介绍 项目中所用到的算法模型和数据集等信息如下: 算法模型:     yolov8 yolov8主要包含以下几种创新:         1. 可以任意更换主干结构,支持几百种网络主干。 数据集:     网上下载的数据集&#x…

03_渲染进程调用node

我们先创建一个文件夹及文件,并且在 html 引入 JS 文件。 在 render.js 里面输入以下内容: let fs require(fs) // let是在当前代码块有效console.log(fs) // 将fs对象的内容打印到控制台供调试和查看 fs 模块:对文件系统进行操作&#xf…

对GIS与游戏引擎(UE4 或 U3D)结合的看法

GIS与游戏引擎结合,这在6年前就已经很多公司在进行探索了,经过这几年的发展,结合当前的政策,从以下几方面说一下我的看法: 1.GIS客户都是特殊单位及领域。2018年后,国内已经对国产化有明确要求了&#xff0…

测试一下 Anthropic 宣称超过 GPT-4 的 Claude 3 Opus

测试一下 Anthropic 宣称超过 GPT-4 的 Claude 3 Opus 0. 引言1. 测试 Claude 3 Opus3. 试用 api key 限制 0. 引言 今天测试一下 Anthropic 发布的 Claude 3 Opus。 3月4日,Anthropic 宣布推出 Claude 3 型号系列,该系列在广泛的认知任务中树立了新的…

Java客户端调用elasticsearch进行深度分页查询 (search_after)

Java客户端调用elasticsearch进行深度分页查询 (search_after) 一. 代码二. 测试结果 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱 具体的Search_after解…

keepalived原理以及lvs、nginx跟keeplived的运用

keepalived基础 keepalived的原理是根据vrrp协议(主备模式)去设定的 vrrp技术相关原理 状态机; 优先级0~255 心跳线1秒 vrrp工作模式 双主双备模式 VRRP负载分担过程 vrrp安全认证:使用共享密匙 keepalived工具介绍 keepal…

CSS 【详解】响应式布局(明天内容)

响应式布局: 同一页面在不同的屏幕上有不同的布局,即一套代码自适应不同的屏幕。 常用 单位: 像素(px):像素是最常用的长度单位,它表示屏幕上的一个物理像素点。例如,width: 200px; …

如何导入非同一级的py文件里的函数

我正在main_cnn.py里写代码,要到入models文件夹下的resnet50里的CustomResNet50函数。应该怎么导入。 如果 models 文件夹与我们main_cnn.py的主文件不在同一级目录下,而是在上一级目录,你可以这样导入: from ..models.resnet50…

【NR 定位】3GPP NR Positioning 5G定位标准解读(十二)-Multi-RTT定位

前言 3GPP NR Positioning 5G定位标准:3GPP TS 38.305 V18 3GPP 标准网址:Directory Listing /ftp/ 【NR 定位】3GPP NR Positioning 5G定位标准解读(一)-CSDN博客 【NR 定位】3GPP NR Positioning 5G定位标准解读(…

mysql5.6---windows和linux安装教程和忘记密码怎么办

一、windows安装 1.完成解压 解压完成之后将其放到你喜欢的地址当中去,这里我默认放在了D盘,这是我的根目录 2.配置环境变量 我的电脑->属性->高级->环境变量->系统变量 选择PATH,在其后面添加: (注意自己的安装地址) D:\mysql-5.6.49…

基于EasyCVR视频技术的流媒体视频融合与汇聚管理系统建设方案

流媒体视频融合与汇聚管理系统可以实现对各类模块化服务进行统一管理和配置等操作,可实现对应用服务的整合、管理及共享,以标准接口的方式,业务平台及其他第三方业务平台可以方便地调用各类数据,具有开放性和可扩展性。在流媒体视…

Android Studio轮播图使用失败怎么办【已解决】

Android Studio轮播图使用失败怎么办 1.在gethub上面搜索轮播图 2.选择要使用的轮播图 3.查看该轮播图的配置方法 4.复制该依赖放入build.gradle中 5.重新构建 6.使用banner 发现没有报错了 7.参考网址 https://github.com/youth5201314/banner

Java代码审计安全篇-SSRF(服务端请求伪造)漏洞

前言: 堕落了三个月,现在因为被找实习而困扰,着实自己能力不足,从今天开始 每天沉淀一点点 ,准备秋招 加油 注意: 本文章参考qax的网络安全java代码审计,记录自己的学习过程,还希望各…

Observer 模式

文章目录 💡问题引入💡概念💡例子💡总结 💡问题引入 假设有一个在线商店系统,用户可以订阅商品的库存通知。当某个商品的库存数量发生变化时,系统会自动发送通知给所有订阅了该商品的用户。设计…