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

Linux:调试器 gdb/cgdb 的使用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、调试前的预备
  • 二. 使用(gdb的常用命令)
  • 三. 推荐安装cgdb
  • 总结


前言

本文主要讲解如何在Linux环境下面来对代码进行调试


一、调试前的预备

  • 程序的发布⽅式有两种, debug 模式和 release 模式, Linux gcc/g++ 出来的⼆进制程
    序,默认是 release 模式。
  • 要使⽤gdb调试,必须在源代码⽣成⼆进制程序的时候,加上 -g 选项(表示是debug模式),如果没有添加,程序⽆法被编译

在这里插入图片描述

在这里插入图片描述

二. 使用(gdb的常用命令)

命令作⽤样例
list/l显⽰源代码,从上次位置开始,每次列出十行list/l 10
list/l 函数名列出指定函数的源代码list/l main
list/l ⽂件名:⾏号列出指定⽂件的源代码list/l mycmd.c:1
r/run从程序开始连续执⾏run
n/next单步执⾏,不进⼊函数内部next
s/step单步执⾏,进⼊函数内部step
break/b [⽂件名:]⾏号在指定⾏号设置断点break 10 /break test.c:10
break/b 函数名在函数开头设置断点break main
info break/b查看当前所有断点的信息info break
finish执⾏到当前函数返回,然后停⽌finish
p 变量打印指定变量的值p x
print/p 表达式打印表达式的值print start+end
set var 变量=值修改变量的值set var i=10
continue/c从当前位置开始连续执⾏程序continue
delete/d /breakpoints删除所有断点delete breakpoints
delete/d /breakpoints n删除序号为n的断点(不是根据行号删除!)delete breakpoints 1
disable breakpoints禁⽤所有断点disable breakpoints
enable breakpoints启⽤所有断点enable breakpoints
info/i breakpoints查看当前设置的断点列表info breakpoints
display变量名 跟踪显⽰指定变量的值(每次停⽌时)display x
undisplay 编号取消对指定编号的变量的跟踪显⽰undisplay 1
until X⾏号执⾏到指定⾏号until 20
backtrace/bt查看当前执⾏栈的各级函数调⽤及参数backtrace
info/i locals查看当前栈帧的局部变量值info locals
quit退出GDB调试器quit

三. 推荐安装cgdb

安装cgdb:
• gdb的基本调试还是⿇烦,虽然是⿊屏,但是还是想看到代码调试
• 推荐安装cgdb:
• Ubuntu:sudo apt-get install -y cgdb
• Centos: sudo yum install -y cgdb


总结

本文主要介绍了gdb的一些指令方便使用的时候查看。


http://www.mrgr.cn/news/69353.html

相关文章:

  • git撤销、回退某个commit的修改
  • vscode中执行git合并操作需要输入合并commit信息,打开的nano小型文本编辑器说明-
  • 自动驾驶仿真:软件在环(SIL)测试详解(精简版入门)
  • 机器学习中的概率超能力:如何用朴素贝叶斯算法结合标注数据做出精准预测
  • WebRTC项目一对一视频
  • 使用OpenCV(C++)通过鼠标点击操作获取图像的像素坐标和像素值
  • VMware中的重要日志文件 vobd.log 学习总结
  • C#核心(9)静态类和静态构造函数
  • 知识图谱是如何通过数据集构建的,比如通过在MSCOCO和Flickr30k数据集和Visual Genome数据集
  • MySQL性能测试方案设计
  • 万字长文解读深度学习——循环神经网络RNN、LSTM、GRU、Bi-RNN
  • Python数据预处理
  • 职场中如何向下属表达自己的观点
  • 华为私有接口类型hybrid
  • 医学可视化之热力图
  • C++接口类, 抽象类和实体类简述
  • 【C++】详解RAII思想与智能指针
  • 基于大语言模型的规划
  • 网站开发-苍穹外卖-day3:苍穹外卖和瑞吉外卖哪个更好???
  • UE5 HLSL 学习笔记
  • 111 - Lecture 8
  • 【MySQL场景题:如何保障传入id顺序与查询结果id顺序一致】---项目积累
  • A20红色革命文物征集管理系统
  • 【核心变量】上市公司企业战略激进度数据 (2004-2023年)
  • libaom 源码分析:重叠块运动补偿OBMC
  • 农业产业链大延伸,农业强国梦正圆!