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

Linux基础开发工具之调试器gdb

文章目录

  • 1.编译成的可调试的debug版本
    • 1.1gcc test.c -o testdebug -g
    • 1.2readelf -S testdebug | grep -i debug
  • 2.调试指令
    • 2.0quit退出
    • 2.1list/l/l 数字: 显示代码
    • 2.2run/r运行
    • 2.3断点相关
      • 1. break num/b num: 设置
      • 2. info b: 查看
      • 3. d index: 删除
      • 4. n: F10逐过程
      • 5. p + 变量名: 调试过程显示变量信息
      • 6. step/s : F11:逐语句
      • 7. bt: 调用堆栈
      • 8. finish: 运行完成当前函数 并返回调用此函数的位置
      • 9. display + 变量名: 显示变量的值直到他被取消
      • 10. undisplay + 编号: 取消常显示
      • 11.until + num: 跳转到指定行 (当前栈帧)
      • 12.continue/c: 运行至下一个断点停止
      • 13. disable + 编号: 禁用当前断点
      • 13. enable + 编号: 取消禁用当前断点
      • 14. set var i = 100: 改变变量值

1.编译成的可调试的debug版本

1.1gcc test.c -o testdebug -g

gcc && g++ 默认形成的可执行程序是release版本 ---- 无法直接被调试
在这里插入图片描述

1.2readelf -S testdebug | grep -i debug

readelf 用于读取 ELF(Executable and Linkable Format)格式文件的详细信息,包括目标文件、可执行文件、共享目标文件与核心转储文件。
在这里插入图片描述

2.调试指令

2.0quit退出

退出

2.1list/l/l 数字: 显示代码

可视化差

在这里插入图片描述

从第一行开始显示

在这里插入图片描述

这里是引用

2.2run/r运行

≈ F5 若没有断点 则直接运行结束

2.3断点相关

1. break num/b num: 设置

在num行打断点

2. info b: 查看

3. d index: 删除

index: 断点的编号
在这里插入图片描述

4. n: F10逐过程

5. p + 变量名: 调试过程显示变量信息

6. step/s : F11:逐语句

7. bt: 调用堆栈

8. finish: 运行完成当前函数 并返回调用此函数的位置

9. display + 变量名: 显示变量的值直到他被取消

10. undisplay + 编号: 取消常显示

11.until + num: 跳转到指定行 (当前栈帧)

12.continue/c: 运行至下一个断点停止

13. disable + 编号: 禁用当前断点

断点仍然还存在 只不过禁用 Enb状态变为n(no)

13. enable + 编号: 取消禁用当前断点

Enb状态变为y(yes)

14. set var i = 100: 改变变量值

调试过程中 改变已有变量i的值

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

相关文章:

  • Apache APISIX 的 Admin API 默认访问令牌漏洞(CVE-2020-13945)漏洞复现
  • Clickhouse学习笔记(3)—— Clickhouse表引擎
  • WebSocket是什么以及其与HTTP的区别
  • Flutter 实战:构建跨平台应用
  • Python中68个内置函数的使用与归类
  • AGV無人搬送車控制系统Pytorn
  • 使用MVS-GaN HEMT紧凑模型促进基于GaN的射频和高电压电路设计
  • Android13分享热点设置安全性为wpa3
  • 2023-11-12 LeetCode每日一题(Range 模块)
  • 【六袆 - Framework】Angular-framework;前端框架Angular发展的由来0001;
  • JAVA集合学习
  • 【Linux】语言层面缓冲区的刷新问题以及简易模拟实现
  • Mac安装与配置eclipse
  • TCP协议(建议收藏)
  • Interactive Analysis of CNN Robustness
  • Java,多线程,线程的通信机制
  • ArcGIS进阶:栅格计算器里的Con函数使用方法
  • 小程序多文件上传 Tdesign
  • Java多线程锁
  • 【Docker】Web应用通过jar打包成WAR文件
  • Elasticsearch 外部词库文件更新
  • OpenTiny Vue 组件库支持 Vue2.7 啦!
  • 蒙特卡罗算法
  • python爬虫hook定位技巧、反调试技巧、常用辅助工具
  • Jmeter —— jmeter参数化实现
  • Day57_《MySQL索引与性能优化》摘要
  • 蓝桥杯每日一题2023.11.11
  • 『Linux升级路』基础开发工具——vim篇
  • 【Excel】补全单元格值变成固定长度
  • HackTheBox-Starting Point--Tier 2---Base