GDB · 夏训 · 查看变量

格蠹信息科技有限公司

GDB · 夏训 · 查看变量

www.nanocode.com

盛格塾 2024 暑期公益课程

GDB暑假训练营

2024年8月1日,继 GDB 暑假训练营的埋伏断点探索之旅后,我们再次相聚于屏幕前,开启了 GDB 功能探索的新篇章——查看变量。在编程这片星空中,变量如同星辰般点缀其间,它们承载着程序的灵魂与动态,我们通过洞察这些变量来探寻这片星空的奥秘。

随着直播的序幕缓缓拉开,我满怀激情地踏入了这次查看变量的旅程。此次直播还加入了一些关于 GDB 的简单介绍,通过这次实战,旨在让每一位观众都能亲手揭开变量神秘的面纱。

直播开始,我首先简要回顾了 GDB 的基本操作,以及上一期的埋伏断点的相关知识,为即将展开的变量查看之旅铺垫基础。随后,我直奔主题,开始展示我实际操作的代码。每一次敲击键盘输入的命令,就像是向它发出了一道道探索指令。只见它不急不躁,紧紧跟随我的步伐,带领我深入程序的迷宫,一一揭开那些隐藏的变量的秘密。

“在 GDB 中,查看变量值的基本命令是 print 或简写为 p。” 我边操作边解说,“只需在 GDB 命令行中输入 p 变量名,GDB 便会显示该变量当前的值。” 随着我的演示,屏幕上变量值的一一呈现,让每个人都感受到了 GDB 查看变量这个功能的强大与便捷。

b4d92eb221a14f1edc636832f384f2ce.png

然而,GDB 的魅力远不止于此。我进一步介绍了如何查看复杂数据结构(如数组、结构体等)中的变量值。通过 print 命令结合数组索引或结构体成员访问符,我们能够轻松获取到这些复杂数据结构内部变量的详细信息。这一过程中,我也不断尝试引导观众自己动手尝试,让他们在实践中加深对变量查看的理解与掌握。

随着直播的深入,我还分享了几个实用的 GDB 技巧,如使用 display 命令自动显示变量值,也请张老师给我解释了一下 print 和 display 两个命令的区别。这些互动过程,也让调试过程变得生动有趣。

当直播接近尾声时,我也引入了下一节课的主题查看内存。这次直播的热情反馈让我深感欣慰与鼓舞。这次 GDB 变量查看直播不仅让我又掌握到了 GDB 查看变量的新功能,也在和张老师的互动中查缺补漏。

回望这段充满收获与喜悦的直播历程,我坚信:在编程的道路上,只有不断学习、勇于探索才能不断前行。未来,我将继续带领大家深入探索 GDB 的更多功能与应用场景,共同书写属于我们的编程传奇。同时,我也诚挚地邀请每一位热爱编程、渴望在 GDB 世界中遨游的你加入我们的行列。让我们携手并进、共同成长,在编程的海洋中乘风破浪、勇往直前!

知识点归纳

序号

 命令

 描述

01

p(print)

打印变量

02

display

控制 GDB 当前显示面板

03

n(next)

单步执行

04

pt(ptype)

查看变量的类型

05

p intArray[1]@3

查看数组1-3的值

06

p person

查看结构体的变量

07

info locals

查看当前作用域所有局部变量的值

08

display $pc

显示当前程序计数器的值

09

set var char=’B’

修改变量值为’B’

10

info display

观察当前 GDB 显示面板的内容

11

x /4xw &var

查看内存内容

STEP

01

3dea094c00c8bd3e29350e7009cfdd64.png

1. 前情回顾

STEP

02

39644f6512de87f30f88029336323bc6.png

2. 查看变量

STEP

03

7cee1d56535ad31d8d2527571f42f64f.png

3. 查看变量类型

STEP

04

3f09252b860acadaef40c90eb2d2c5b1.png

4. 查看数组类型变量

STEP

05

99176a107b52aed2df34846d00817a06.png

5. 查看结构体类型变量

STEP

06

3d4358d4afcbc884dae57f6070bfa86a.png

6. 查看当前作用域所有局部变量的值

STEP

07

582aab0f01ed3a9178925aed1d936d6b.png

7. 查看指针类型变量

STEP

08

22d1635897661d8ae0694c244488f01e.png

8. 把变量放进显示面板

STEP

09

8a8ad98a443fecb66c43f0d74f1b0492.png

9. 显示当前程序计数器的值

STEP

10

d3498e1234b1922dd8cd3ad95100a197.png

10. 修改变量的值

STEP

11

718bb57b5e17a187187df7ebc646f59d.png

11. 修改不同类型的变量

STEP

12

be46eeef484472dac690a697d22fd241.png

12. 显示当前线程的函数调用堆栈信息

STEP

13

09c703ee70be72e6905658e389ecfb58.png

13. 用于打印出之前使用display命令的列表

STEP

14

4678b841a069659ad84a23cd101b90c0.png

14. 查看内存

【盛格塾】

正心诚意,格物致知

人文情怀审视软件,以软件技术改变人生

8a1ad5ab9b16e3a359b5d5c96a882711.png

格友公众号

92664282d060c07a74be1ab082216d2b.png

盛格塾小程序

扫描上方二维码或在微信中搜索“盛格塾”小程序

可以阅读更多文章和有声读物

往期推荐

是谁惹恼命令行?

在GDB下学习BOX64

在幽兰之境,邂逅LibreOffice的无限魅力

719蓝屏的主动背锅者原来是他

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值