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
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STL之deque容器代码详解

1 基础概念 功能: 双端数组,可以对头端进行插入删除操作。 deque与vector区别: vector对于头部的插入删除效率低,数据量越大,效率越低。 deque相对而言,对头部的插入删除速度回比vector快。 vector访问…

和泓海棠府——与阳光大海约会 悦享惬意生活

海南三亚海棠湾 四季如春的梦想在这里即可实现和泓海棠府 与阳光大海约会 悦享惬意生活 如果在三亚有一套房 你就可以把父母接过来一起住 尽己所能让老人圆一个海居梦 带着孩子一起在园林里探索自然 陪孩子度过每一个有趣的海边假期 你也可以随时沿着会唱歌的沙滩迎风漫…

【力扣白嫖日记】1341.电影评分

前言 练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。 今日题目: 1341.电影评分 表:Movies 列名类型movie_idinttitlevarchar movie_id 是这个表的主键(具有唯一…

制作图片马:二次渲染(upload-labs第17关)

代码分析 $im imagecreatefromjpeg($target_path);在本关的代码中这个imagecreatefromjpeg();函数起到了将上传的图片打乱并重新组合。这就意味着在制作图片马的时候要将木马插入到图片没有被改变的部分。 gif gif图的特点是无损,我们可以对比上传前后图片的内容…

上海亚商投顾:沪指震荡调整 飞行汽车概念股持续爆发

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 沪指昨日震荡调整,深成指走势稍强,创业板指一度涨超1%,黄白二线走势分化&a…

每3秒一例骨折!别把骨质疏松不当病,新设备「双能X线骨密度仪」为您的健康加“骨”劲

随着社会老龄化日益加剧,我国骨质疏松患者人数已居世界首位。骨质疏松症已成为对中老年健康构成严重威胁的慢性疾病,且存在诊断率低、治疗率低、长期药物治疗依从性低的三低问题。 很多人认为的骨质疏松是一种老化的自然现象不同,这其实是一种…

springboot267大学生科创项目在线管理系统的设计与实现

# 大学生科创项目在线管理系统设计与实现 摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装大学生科创项目在…

Spring Schedule:Spring boot整合Spring Schedule实战讲解定时发送邮件的功能

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

【C++教程从0到1入门编程】第九篇:STL中Vector类

一、vector的介绍 1.vector的介绍 vector是表示可变大小数组的序列容器。 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的&…

如何处理爬虫代理的404错误

目录 前言 一、什么是404错误 二、处理404错误的方法 1. 重新尝试请求 2. 使用备用代理 3. 日志记录 总结 前言 在进行网络爬虫开发过程中,经常会遇到一些特殊的错误,例如404错误。当我们使用代理服务器进行网络爬取时,有时候会遇到4…

vMware WorkStation创建虚拟机安装CentOS7,NAT模式配置网络

一、安装虚拟机 1、选择典型(推荐)配置 2、选择稍后安装操作系统 3、操作系统选择CentOS7 64位 4、虚拟机命名、选择安装位置 6、指定磁盘容量 7、指定磁盘容量 步骤: (1)、系统内存2GB (2)、…

vue项目:webpack打包优化实践

本文目录 一、项目基本信息二、分析当前项目情况1、使用 webpack-bundle-analyzer 插件2、使用 speed-measure-webpack-plugin 插件 三、解决构建问题1、caniuse-lite 提示的问题2、 warning 问题 四、打包速度优化1、修改source map2、处理 loader 五、webpack性能优化1、使用…

P4551 最长异或路径

最长异或路径 题目描述 给定一棵 n n n 个点的带权树,结点下标从 1 1 1 开始到 n n n。寻找树中找两个结点,求最长的异或路径。 异或路径指的是指两个结点之间唯一路径上的所有边权的异或。 输入格式 第一行一个整数 n n n,表示点数…

Threejs粒子水波纹效果

依赖 three(这个重要)react (这个不重要)ahooks(这个不重要)unocss(这个不重要) 效果 代码 import React, { useEffect, useRef } from react; import { useGetState } from ahoo…

视频AI方案:数据+算力+算法,人工智能的三大基石

背景分析 随着信息技术的迅猛发展,人工智能(AI)已经逐渐渗透到我们生活的各个领域,从智能家居到自动驾驶,从医疗诊断到金融风控,AI的应用正在改变着我们的生活方式。而数据、算法和算力,正是构…

基于SpringBoot+MYSQL的社区团购系统

目录 1、前言介绍 2、主要技术 3、系统流程分析 3.1、注册流程 3.2、登录流程 3.3、购买流程 4、系统设计 4.1、系统结构设计 4.2、系统顺序图 4.2.1、登录模块顺序图 4.2.2、添加信息模块顺序图 4.3、数据库设计 4.3.1、数据库E-R图设计 4.3.2、数据库表设计 5、…

找不到mfc140u.dll怎么办?修复缺失mfc140u.dll的多种方案分享

mfc140u.dll文件是一个重要的动态链接库文件,它在Windows操作系统中发挥着关键的作用。由于各种原因,例如应用程序冲突或系统错误等,mfc140u.dll文件有时会出现丢失的情况。一旦发生这种问题,运行依赖此文件的应用程序将无法正常启…

(2)(2.12) Robsense SwarmLink

文章目录 前言 1 规格(根据制造商提供) 2 EasySwarm 3 参数说明 前言 Robsense SwarmLink 遥测无线电可将多架无人机连接到一个地面站,而无需在地面站一侧安装多个无线电(即创建一个网状网络)。此外,还…

解决vue2+elementUI的下拉框出现自动校验的问题

问题: 总结原因是因为新增的时候,传了空值进去 可以这样子解决 this.formData.value && this.$set(this.model, this.formData.key, this.formData.value)这种是只有值存在的时候才会给他赋值,但是这只解决单选下拉框,…

精读《正交的 React 组件》

1 引言 搭配了合适的设计模式的代码,才可拥有良好的可维护性,The Benefits of Orthogonal React Components 这篇文章就重点介绍了正交性原理。 所谓正交,即模块之间不会相互影响。想象一个音响的音量与换台按钮间如果不是正交关系&#xf…