【linux】“gdb“调试方法与技巧

这篇具有很好参考价值的文章主要介绍了【linux】“gdb“调试方法与技巧。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🎉博客主页:小智_x0___0x_
🎉欢迎关注:👍点赞🙌收藏✍️留言
🎉系列专栏:Linux入门到精通
🎉代码仓库:小智的代码仓库

一、什么是gdb?

gdb是一款开源的、功能强大的调试器,它可以用于调试多种编程语言,如C、C++、汇编语言等。gdb可以帮助开发者在程序运行时进行调试,并找到程序中的错误。gdb提供了许多常用的调试功能,如设置断点、单步执行、查看变量值等。

  • 程序的发布方式有两种,debug模式和release模式
  • Linux gcc/g++出来的二进制程序,默认是release模式
  • 要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项

二、gdb的使用

我们使用c源文件进行演示。

进入gdb调试

在我们生成debug版本下的可执行程序之后可以使用gdb 可执行程序来进入gdb:
【linux】“gdb“调试方法与技巧,Linux入门到精通,linux,c语言,gdb
到这里我们就可以开始gdb调试了。

list/l 查看源码

l/list+行号

我们可以输入l/list+行号进行查看源码,默认显示前十行:
【linux】“gdb“调试方法与技巧,Linux入门到精通,linux,c语言,gdb
因为gdb可以记录我们上一条指令,所以我们再次按下回车会接着执行上一次的指令,可以查看剩余的代码:
【linux】“gdb“调试方法与技巧,Linux入门到精通,linux,c语言,gdb

list/l+函数名

l+list+函数名可以直接查看函数所在的区间代码:
【linux】“gdb“调试方法与技巧,Linux入门到精通,linux,c语言,gdb
他默认会将我们要查找的函数放在居中位置。

run/r运行

run/r开始运行程序直到遇到结束或者遇到断点等待下一个命令。
【linux】“gdb“调试方法与技巧,Linux入门到精通,linux,c语言,gdb

break(b)设置断点

break(b)+行号,可以在某一行加上断点。
【linux】“gdb“调试方法与技巧,Linux入门到精通,linux,c语言,gdb
break(b)+函数名,在某个函数开头设置断点。
【linux】“gdb“调试方法与技巧,Linux入门到精通,linux,c语言,gdb

info break查看断点信息

使用info break来查看当前设置的断点信息。
【linux】“gdb“调试方法与技巧,Linux入门到精通,linux,c语言,gdb

finish

finish执行到当前函数返回,然后停下来等待命令。
【linux】“gdb“调试方法与技巧,Linux入门到精通,linux,c语言,gdb

n/next单条执行

开始执行之后可以使用n/next进行单行执行,就是vs中的F10
【linux】“gdb“调试方法与技巧,Linux入门到精通,linux,c语言,gdb

s/step进入函数调用

开始执行之后可以使用s/step进行逐语句执行,就是vs中的F11.
【linux】“gdb“调试方法与技巧,Linux入门到精通,linux,c语言,gdb

p 变量

可以使用p +变量来打印变量的值。
【linux】“gdb“调试方法与技巧,Linux入门到精通,linux,c语言,gdb

set var修改变量的值

调试过程中可以通过set var来修改变量的值。
【linux】“gdb“调试方法与技巧,Linux入门到精通,linux,c语言,gdb

continue/c

continue/c:从当前位置来纳许而非但步骤执行程序。
【linux】“gdb“调试方法与技巧,Linux入门到精通,linux,c语言,gdb

disable breakpionts

disable breakpionts+断点号:可以禁用这个断点
【linux】“gdb“调试方法与技巧,Linux入门到精通,linux,c语言,gdb
可以看到禁用之后的断点 Enb属性从y变成了n.

enable breakpoints

enable breakpoints+ 断点号:可以启用这个断点。
【linux】“gdb“调试方法与技巧,Linux入门到精通,linux,c语言,gdb

delete breakpoints

delete breakpoints:删除所有断点
delete breakpoints+n:删除序号为n的断点。

display

display + 变量名:跟踪查看一个变量,每次停下来都显示它的值。
【linux】“gdb“调试方法与技巧,Linux入门到精通,linux,c语言,gdb

undisplay

undisplay + n取消对序号为n的变量的跟踪,如果不加n则会取消对所有先前设置的那些变量的跟踪。
【linux】“gdb“调试方法与技巧,Linux入门到精通,linux,c语言,gdb

until

until+n跳转至n行执行。
【linux】“gdb“调试方法与技巧,Linux入门到精通,linux,c语言,gdb

breaktrace/bt

breaktrace/bt:查看各级函数调用及参数。
【linux】“gdb“调试方法与技巧,Linux入门到精通,linux,c语言,gdb

info (i)locals

查看当前栈帧局部变量的值。
【linux】“gdb“调试方法与技巧,Linux入门到精通,linux,c语言,gdb

quit/q

quit/q:退出gdb。
【linux】“gdb“调试方法与技巧,Linux入门到精通,linux,c语言,gdb
这里由于我们并没有完成全部调试,所以他会询问我们是否要退出gdb,我们直接输入y即可退出gdb。

gbd总结

  • list/l 行号:显示binFile源代码,接着上次的位置往下列,每次列10行。
  • list/l 函数名:列出某个函数的源代码。
  • r或run:运行程序。
  • n 或 next:单条执行。
  • s或step:进入函数调用
  • break(b) 行号:在某一行设置断点
  • break 函数名:在某个函数开头设置断点
  • info break :查看断点信息。
  • finish:执行到当前函数返回,然后挺下来等待命令
  • print§:打印表达式的值,通过表达式可以修改变量的值或者调用函数
  • p 变量:打印变量值。
  • set var:修改变量的值
  • continue(或c):从当前位置开始连续而非单步执行程序
  • run(或r):从开始连续而非单步执行程序
  • delete breakpoints:删除所有断点
  • delete breakpoints n:删除序号为n的断点
  • disable breakpoints:禁用断点
  • enable breakpoints:启用断点
  • info(或i) breakpoints:参看当前设置了哪些断点
  • display 变量名:跟踪查看一个变量,每次停下来都显示它的值
  • undisplay:取消对先前设置的那些变量的跟踪
  • until X行号:跳至X行
  • breaktrace(或bt):查看各级函数调用及参数
  • info(i) locals:查看当前栈帧局部变量的值
  • quit:退出gdb

🍀小结🍀

今天我们学习了"gdb"调试方法与技巧相信大家看完有一定的收获。
种一棵树的最好时间是十年前,其次是现在! 把握好当下,合理利用时间努力奋斗,相信大家一定会实现自己的目标!加油!创作不易,辛苦各位小伙伴们动动小手,三连一波💕💕~~~,本文中也有不足之处,欢迎各位随时私信点评指正!
本篇的代码已上传gitee仓库文章来源地址https://www.toymoban.com/news/detail-562844.html

到了这里,关于【linux】“gdb“调试方法与技巧的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux环境下gdb调试方法与演示

    个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【Linux专栏】🎈 本专栏旨在分享学习Linux的一点学习心得,欢迎大家在评论区讨论💌 演示环境: centos7 如果还未安装gdb的话,输入下面命令进行安装即可: 首先,gd

    2024年02月07日
    浏览(34)
  • 【Linux】Linux调试器-gdb使用

    程序的发布方式有两种,debug模式和release模式 Linux gcc/g++出来的二进制程序,默认是release模式 要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项 退出:  调试命令: list/l 行号:显示binFile源代码,接着上次的位置往下列,每次列10行。 list/l 函数名:列出某

    2024年02月21日
    浏览(50)
  • [Linux] Linux代码调试器 -- gdb

    1、程序的发布方式有两种,debug模式和release模式 2、Linux gcc/g++出来的二进制程序,默认是release模式 3、要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项 我们先来写一段C语言代码: 这里我们正常再编写一个Makefile文件,用于自动化构建,我们要还是正常的编

    2024年02月05日
    浏览(44)
  • Linux: GDB 调试工具

      目录 概念: Linux 下 debug 和 release 的区别: GDB 的使用 :  激活和进入工作模式:  查看文件的内容: 运行调试的文件:  打断点:   查看断点: 删除断点: 禁用断点: ​编辑 重新打开断点:  逐过程 与 逐语句: 查看变量/监视功能:  常显示:  运行至下一个断点

    2024年02月19日
    浏览(39)
  • Linux——gdb调试器

    目录    前言: 二.gdb定义及指令: 如何查看该exe文件是否为Debug版本?两种方法: 三.gdb调试:         调试指令1:l指令(小写L) run指令:运行程序,相当于VS中的直接运行不调试——可简化输入r  break指令:设置断点——指令可简化输入为b ​编辑  info b指令:查看整个代码

    2024年02月07日
    浏览(38)
  • Linux调试器gdb

    本文已收录至《 Linux知识与编程 》专栏! 作者: ARMCSKGT 演示环境: CentOS 7     ​ 目录 前言 正文 下载gdb 生成可调式文件 进入gdb gdb常用指令 查看代码 l  运行程序 r  断点设置 b  显示信息 info  查看断点 info b  删除断点 d  禁用断点 disable breakpoints  启用断点 enable brea

    2024年02月14日
    浏览(54)
  • Linux--调试器:gdb

    gcc与g++默认动态链接形成的可执行程序(比如a.out)是 release 版本,不可调试!!! 如何搞成debug可调试版本? 查看可执行程序存储了哪些内存空间:   调试语法:

    2024年02月13日
    浏览(51)
  • Linux - 还不懂 gdb 调试器?(调试软件)

    当前,我们可以使用 make/makefile 来程序化执行代码文件;可以使用 gcc/g++ 等编译器来编译代码;可以使用 vim 编辑器来编写代码;其实在 Linux 当中还有一个工具,可以实现调试工作,这个工具就是 -- gdb。 在了解调试器之前,你应该对代码的发布版本做一些了解: 我们在 VS

    2024年02月07日
    浏览(54)
  • 【Linux】Linux下调试器gdb的使用

    👑作者主页:@安 度 因 🏠学习社区:StackFrame 📖专栏链接:Linux 如果无聊的话,就来逛逛 我的博客栈

    2024年02月19日
    浏览(41)
  • Linux系统gdb调试常用命令

    GDB(GNU调试器)是一款常用的调试工具,用于调试C、C++等编程语言的程序。以下是一些常用的GDB命令: 1. 启动程序:    - `gdb executable`:启动GDB调试器,并加载可执行文件。 2. 设置断点:    - `break line`:在指定行设置断点。    - `break function`:在指定函数的入口处设置断

    2024年02月10日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包