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

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.kler.cn/a/386459.html

相关文章:

  • 使用 Keras 训练一个卷积神经网络(CNN)(入门篇)
  • MySQL与Oracle对比及区别
  • acwing算法基础02一高精度,前缀和,差分
  • 除了 Mock.js,前端还有更方便的 Mock 数据工具吗?
  • Unity3D实现视频和模型融合效果
  • Rust 所有权机制
  • Spark的容错机制
  • 数据编排与ETL有什么关系?
  • Springboot中的单元测试该如何进行?
  • 在职场,多少人输在不懂人情世故上!这12条人情世故,你懂几条?
  • C#中日期和时间的处理
  • 15分钟学 Go 第 45 天 : 使用Docker容器
  • Leetcode 778 Swim in a Rising water
  • (十三)JavaWeb后端开发——MySQL2
  • Spring的异步详解(@Async)
  • arkUI:层叠布局(Stack)
  • 测试概念以及测试bug
  • cannot locate symbol _ZTVNSt6__ndk119basic_ostringstreamIcNS_
  • 自动化细胞核分割与特征分析
  • 如何利用动态住宅IP高效抓取亚马逊数据并避开封禁
  • react的创建与书写
  • node.js安装配置(Windows)
  • 我应该如何使用这个API接口来展示商品信息呢
  • 【图像与点云融合教程(五)】海康相机 ROS2 多机分布式实时通信功能包
  • 美的品牌店铺运营全解析:洞察用户行为驱动增长
  • 【excel基本操作-sumif绝对引用和相对引用