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

【Linux】gdb——Linux调试器

gdb使用背景

程序的发布方式有两种,debug模式和release模式
Linux gcc/g++出来的二进制程序,默认是release模式

要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项

在这里插入图片描述

在这里插入图片描述

gdb使用方法

首先进入gdb

gdb test_g

在这里插入图片描述

list显示代码

在这里插入图片描述
在这里插入图片描述

断点

b 行号:打断点
(break缩写)
在这里插入图片描述

info b :查看断点信息
(information缩写)
在这里插入图片描述

运行到断点处

r :运行程序
(run的缩写)
在这里插入图片描述

查看变量

p:打印表达式的值,通过表达式可以修改变量的值或者调用函数
(print的缩写)

p 变量:打印变量值。

p &变量:打印变量地址
在这里插入图片描述

逐语句执行

s:进入函数调用
(step的缩写)
在这里插入图片描述

逐过程执行

n 单条执行(不进入函数调用)
(next的缩写)

在这里插入图片描述

删除断点

d breakpoints :删除所有断点
d breakpoints n :删除序号为 n 的断点
(delete的缩写)

在这里插入图片描述

调用堆栈

bt:查看各级函数调用及参数
(breaktrace的缩写)
在这里插入图片描述

跟踪变量

display 变量名:跟踪查看一个变量,每次停下来都显示它的值

undisplay :取消对先前设置的那些变量的跟踪

在这里插入图片描述

跳转至x行

until X 行号:跳至 X 行

在这里插入图片描述

跳转至下一个断点

c :从当前位置开始连续而非单步执行程序
(continue的缩写)

将一个指定函数跑完

finish:执行完成一个函数就停止

http://www.lryc.cn/news/528579.html

相关文章:

  • C++ 中用于控制输出格式的操纵符——setw 、setfill、setprecision、fixed
  • C++ ——— 学习并使用 priority_queue 类
  • 基础项目实战——3D赛车(c++)
  • ODP(OBProxy)路由初探
  • 从零推导线性回归:最小二乘法与梯度下降的数学原理
  • 计算机网络__基础知识问答
  • 第 5 章:声音与音乐系统
  • C语言编译过程全面解析
  • 算法每日双题精讲 —— 前缀和(【模板】一维前缀和,【模板】二维前缀和)
  • Maui学习笔记- SQLite简单使用案例02添加详情页
  • VMware 中Ubuntu无网络连接/无网络标识解决方法【已解决】
  • 完美世界前端面试题及参考答案
  • 新时代架构SpringBoot+Vue的理解(含axios/ajax)
  • 代理模式 -- 学习笔记
  • gif动画图像优化,相同的图在第2,4,6帧中重复出现,会增加图像体积吗?
  • Harmony Next 跨平台开发入门
  • 阿里巴巴Qwen团队发布AI模型,可操控PC和手机
  • android 音视频系列引导
  • STM32调试手段:重定向printf串口
  • 基于 Jenkins 的测试报告获取与处理并写入 Jira Wiki 的技术总结
  • Vue.js组件开发-实现导出PDF文件可自定义添加水印及水印样式方向
  • css中的animation
  • 四.3 Redis 五大数据类型/结构的详细说明/详细使用( hash 哈希表数据类型详解和使用)
  • 基于Springboot + vue实现的洗衣店订单管理系统
  • 用 Scoop 优雅管理 Windows 软件:安装、配置与使用全指南
  • 深度学习中常用的评价指标方法
  • 多协议网关BL110钡铼6路RS485转MQTT协议云网关
  • Nginx 安装配置指南
  • 二叉树介绍
  • VLC-Qt: Qt + libVLC 的开源库