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

调试(gdb/cgdb)

gdb(cgdb)

学习cgdb基础

程序的发布方式有两种,debug模式和release模式

Linux gcc/g++出来的二进制程序,默认是release模式

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

 

cgdb

● 调试的是可执行程序,不是源文件

● 进入gdb:gdb bin(调试文件)

● quit:退出gdb

cgdb安装

cgdb命令学习

常用指令

cgd常用小技巧:

  a. cgdb会记录最新的一条指令,如果想执行上一条指令,直接回车就可以执行上一条

  b. Esc:切换到代码窗口

  c. i:回到命令窗口

指令:

  a. b + 行号:打断点(gdb不退出,断点变化依次递增)

    ⅰ. b+文件名+函数名(这个也可以打断点 )

  b. d + 断电编号:删除断点

  c. info + b:查看断点

  d. r:运行程序(类似于F5)

  e. n(next):逐过程调试

  f. s(step):逐语句,

  g. c:运行到下一个断点处

  h. p 变量:打印变量值。

cgdb指令合集

watch:监视变量是否变化

调试

调试本质

调试技巧

断点:将代码分块,好查找问题

finsh:查看问题是否在函数内

c(continue):查看问题是否在断点之间的代码块内

until:区域内快速执行,查找问题

watch:当觉得一个变量引起错误的时候,监视变量是否变化

http://www.xdnf.cn/news/672769.html

相关文章:

  • Python+AI Agent:解锁MCP Servers的智能潜力
  • Python学习(2) ----- Python的类型
  • 《软件工程》实战— 在线教育平台开发
  • Matlab中gcb、gcbh、gcs的区别
  • 下一代 SaaS 平台的 AI 架构重构路径——多租户 AI 服务调度 · 多角色智能辅助 · 嵌入式 AIGC 能力的融合设计
  • 学习黑客 Metasploit 主要组件之 Exploit
  • 实时同步缓存,与阶段性同步缓存——补充理解《补充》
  • 塔能科技:有哪些国内工业节能标杆案例?
  • L1-112 现代战争 - java
  • 将 ubutun 的网络模式 从NAT 改到 桥接模式后,无法上网,linux 没有IP地址 的解决方案
  • Java设计模式之代理模式详解
  • 威联通QNAP替换docker源
  • 被忽视的 App 安全入口:资源文件暴露问题与 iOS 混淆实战(含 Ipa Guard 应用经验)
  • React从基础入门到高级实战:React 核心技术 - 错误处理与错误边界:构建稳定的应用
  • Springboot引入Spring Cloud for AWS的配置中心(Parameter Store和Secrets)
  • RK3568DAYU开发板-平台驱动开发:ADC驱动
  • 火柴INIBOX专业矿机登场,碾压现有Initverse挖矿设备
  • Java构建Tree并实现节点名称模糊查询
  • C 语言学习笔记(结构体1)
  • STM32的DMA入门指南:让单片机学会“自动搬运“数据
  • 【Day38】
  • C语言_文件操作
  • 【深度学习-Day 18】从SGD到Adam:深度学习优化器进阶指南与实战选择
  • 【JavaSE】枚举和注解学习笔记
  • 高考加油(Python+HTML)
  • 青少年编程与数学 02-020 C#程序设计基础 07课题、控制结构
  • Android设置界面层级为最上层实现
  • 【数据集】EarthExplore下载Landsat LST 数据
  • Java网络编程性能优化
  • 【Vue Vapor Mode :技术突破与性能优化的可能性】