Linux: GDB 调试工具

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

Linux: GDB 调试工具,Linux指令知识,Linux,linux,运维,服务器 

目录

概念:

Linux 下 debug 和 release 的区别:

GDB 的使用 : 

激活和进入工作模式:

 查看文件的内容:

运行调试的文件: 

打断点: 

 查看断点:

删除断点:

禁用断点:

​编辑

重新打开断点:

 逐过程 与 逐语句:

查看变量/监视功能: 

常显示: 

运行至下一个断点:

转跳行数: 

停止运行:


概念:

Linux GDB(GNU Debugger)是一个功能强大的调试工具,用于调试C、C++等编程语言的程序。它可以帮助开发人员定位和修复程序中的错误。

换句话而言,GDB 的功能就和VS中的调试功能一样,可以对C、C++代码进行调试。

Linux 下 debug 和 release 的区别:

在linux 编译语言的过程中,我们一般会使用gcc 命令将文件编译成可执行文件,但是,在编译文件的过程中,编译的文件分为两种,分别是debug文件和release文件,对于两种文件而言,前者是面向编译者,后者是面向客户。

而Linux是一种面向对象的语言,所以在编译的过程中,gcc一般都是使用release 作为默认的编译。

Linux: GDB 调试工具,Linux指令知识,Linux,linux,运维,服务器

release模式下 编译的文件 比 debug模式下 编译的文件 内存要更小  

Linux: GDB 调试工具,Linux指令知识,Linux,linux,运维,服务器

使用 -g 将gcc的编译模式从release 转变成 debug 

GDB 的使用 : 

激活和进入工作模式:

gdb 需要调试的文件

由于 gdb 是Linux系统默认自带的,所以只需要输入以上指令 进行激活即可使用。

Linux: GDB 调试工具,Linux指令知识,Linux,linux,运维,服务器

进入 gdb 的工作模式后,可以使用命令 quit 或者  q 即可退出gdb 的工作模式,也就是退出调试 

quit  //q

 查看文件的内容:

list  //l

在进入 gdb 的工作模式后,使用list 命令 或者 l 命令 可以对 需要调试的文件进行内容的查看。

Linux: GDB 调试工具,Linux指令知识,Linux,linux,运维,服务器

不过需要注意的是,只需要list 命令,并不需要输入其他的内容,以下是错误的示范:

Linux: GDB 调试工具,Linux指令知识,Linux,linux,运维,服务器

同时,可以看到,在使用list 命令后 文件展示的内容只有十行, 并不是全部,所以想要查看其他行的内容,则可以使用 命令 :  list 行号 或者  list 文件名 : 关键字   又或者 list 文件名 : 行号  对文件内容进行具体的查看

list  行号  // l 行号 

list 文件名 : 关键字  // l 文件名 :关键字 

list 文件名 : 行号 // l 文件名 : 行号

Linux: GDB 调试工具,Linux指令知识,Linux,linux,运维,服务器

list 文件名 :关键字 

Linux: GDB 调试工具,Linux指令知识,Linux,linux,运维,服务器

list 文件名 : 行号 

Linux: GDB 调试工具,Linux指令知识,Linux,linux,运维,服务器

list 行号 

当然,如果想要查看全文,那么只要输入文件开头的行号,随后一直摁下回车即可。 

Linux: GDB 调试工具,Linux指令知识,Linux,linux,运维,服务器

同时需要注意的是,输入行号并不是直接以哪一行开头,而是会出现哪一行的相关上下行。 

Linux: GDB 调试工具,Linux指令知识,Linux,linux,运维,服务器

运行调试的文件: 

run  // r

使用 r 或者 run 命令 对调试文件进行运行! 

Linux: GDB 调试工具,Linux指令知识,Linux,linux,运维,服务器

不过,r命令 的运行 是直接启动到结束,如果需要查看某段代码的内容,或者对代码进行逐句的调试,则需要使用断点命令。 

打断点: 

b 需要打断点的代码行数

 使用命令  b 行数 或者 b 文件名 : 行数 或者 b 文件名 :关键代码  即可打上断点。

 查看断点:

Linux: GDB 调试工具,Linux指令知识,Linux,linux,运维,服务器

使用 i b 或者 info b 对 断点进行查看,且需要注意的是,如图上图所示,在每一个断点的最前端,都有一个编号,这个编号一但被某个断点占用,那么其他断点就不会使用这个编号!

且之后的删除断点也和断点编号有关! 

删除断点:

Linux: GDB 调试工具,Linux指令知识,Linux,linux,运维,服务器

使用 d 断点编号 即可删除 断点,同时需要注意,断点不能连续删除!

Linux: GDB 调试工具,Linux指令知识,Linux,linux,运维,服务器

禁用断点:

disable  断点编号

Linux: GDB 调试工具,Linux指令知识,Linux,linux,运维,服务器

可以看到 矢能 end 从 y 变成了n 表示禁用了!同时还要记住空行打断点是没有用的!

重新打开断点:
 enable 断点编号 

Linux: GDB 调试工具,Linux指令知识,Linux,linux,运维,服务器

 逐过程 与 逐语句:

Linux: GDB 调试工具,Linux指令知识,Linux,linux,运维,服务器

使用 n 或者 next 进行调试的逐过程,相当于VS中的F10进行代码的调试,使用的步骤是先使用 r 命令 进入运行阶段后,因为断点的原因,在使用n 进行代码的调试。 

Linux: GDB 调试工具,Linux指令知识,Linux,linux,运维,服务器

同时可以使用 s 命令 对代码进行逐语句的调试,相当于VS 中的F11 

查看变量/监视功能: 

使用p 命令可以对 代码 中的变量进行监视 或者说查看变量当前的数据

p 需要监视的变量     //查看变量当前的数值
p &需要查看的变量   //查看变量的地址

Linux: GDB 调试工具,Linux指令知识,Linux,linux,运维,服务器

常显示: 

 display 需要显示的变量,常显示顾名思义,就算需要显示的变量会在运行的代码下方显示,当然想要去掉常显示则使用 undisplay 需要取消常显示的变量的编号

Linux: GDB 调试工具,Linux指令知识,Linux,linux,运维,服务器

常显示后,变量发生了变化显示的内容也会发生变化!如下图所示! 

Linux: GDB 调试工具,Linux指令知识,Linux,linux,运维,服务器

注意,编号: 是常显示的内容,行号 是代码运行的内容 

运行至下一个断点:

 使用 c 或者 contine 命令 从当前断点转跳到下一个断点!

Linux: GDB 调试工具,Linux指令知识,Linux,linux,运维,服务器

转跳行数: 

使用 until 行号 命令 转跳到指定行号进行运行,之前几行代码会立马执行完毕到当前的指定行。

Linux: GDB 调试工具,Linux指令知识,Linux,linux,运维,服务器

停止运行:

finish 命令 可以时运行停下。

Linux: GDB 调试工具,Linux指令知识,Linux,linux,运维,服务器文章来源地址https://www.toymoban.com/news/detail-827145.html

到了这里,关于Linux: GDB 调试工具的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【Linux操作系统】深入了解系统编程gdb调试工具

    在软件开发过程中,调试是一个非常重要的步骤。无论是在开发新的软件还是维护现有的代码,调试都是解决问题的关键。对于Linux开发者来说,GDB是一个非常有用的调试工具。在本文中,我们将探讨Linux中使用GDB进行调试的方法和技巧。 GDB是GNU调试器的缩写,是一个功能强

    2024年02月14日
    浏览(37)
  • [linux开发工具]小程序--进度条、调试器 - gdb

    📙 作者简介 :RO-BERRY 📗 学习方向:致力于C、C++、数据结构、TCP/IP、数据库等等一系列知识 📒 日后方向 : 偏向于CPP开发以及大数据方向,欢迎各位关注,谢谢各位的支持 第一种情况 执行结果如下: 可以看到程序先执行printf再执行sleep 第二种情况 执行结果如下: 在这里

    2024年02月22日
    浏览(33)
  • Linux开发工具-vim-gcc-gdb指令及使用

    目录 linux软件包管理器yum(apt) linux开发工具 linux编辑器-vim使用 linux编译器-gcc/g++使用 linux调试器-gdb使用 linux项目自动化构建工具-make/makefile linux第一个小程序-进度条 使用github创建项目 使用git命令 我们前面学了关于linux的基本指令和基本权限的一些相关知识,那么我们今天

    2024年03月10日
    浏览(45)
  • Linux系统下的程序调试工具——GDB(GNU Debugger)

    GCC(GNU Compiler Collection)是GNU开发的编程语言编译器,它支持多种编程语言,如C、C++、Objective-C、Fortran、Ada和Go等。 以下是一些常用的操作: 启动GDB并加载程序 设置断点 在代码中的某一行设置断点,当程序运行到这一行时,GDB会暂停执行。 例如,如果你在 main.c 文件的第

    2024年04月13日
    浏览(34)
  • Linux之基础开发工具gdb调试器的使用(三)

    📘北尘_ :个人主页 🌎个人专栏 :《Linux操作系统》《经典算法试题 》《C++》 《数据结构与算法》 ☀️走在路上,不忘来时的初心 yum install -y gdb 程序的发布方式有两种,debug模式和release模式 Linux gcc/g++出来的二进制程序,默认是release模式,release模式下无法调试 要使用gd

    2024年02月05日
    浏览(35)
  • Linux工具【2】(调试器gdb、项目自动化构建工具make/Makefile)

    在上一篇文章中介绍了Linux中的编辑器vim与编译器gcc与g++: 戳我看vim与gcc详解哦 在本篇文章中将继续来介绍Linux中的工具: 调试器gdb与项目自动化构建工具make/Makefile 在Windows环境中,我们使用vs时,常常会逐过程与逐语句地调试代码以更高效地寻找到错误的位置。在Linux中也

    2024年02月12日
    浏览(41)
  • 【Linux】自动化构建工具--make/Makefile&&调试器--gdb的使用

    一个工程的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作。 makefile带来的好处就是– “自动化编译” ,一旦写好,就只

    2024年02月08日
    浏览(35)
  • 【Linux】--- Linux编译器-gcc/g++、调试器-gdb、项目自动化构建工具-make/Makefile 使用

    格式: gcc [选项] 要编译的文件 [选项] [目标文件] , gcc / g++ 安装: sudo yum install -y gcc-c++ 。安装后的编译器默认的版本是较低的,我们可以 使用选项 -std=c99 (即使用c99标准), -std=c++11 (即使用c++11的标准)来进行版本提升 。使用 -o 选项,可以将编译生成的可执行重命名

    2024年03月10日
    浏览(89)
  • 【探索Linux】—— 强大的命令行工具 P.6(调试器-gdb、项目自动化构建工具-make/Makefile)

    前面我们讲了C语言的基础知识,也了解了一些数据结构,并且讲了有关C++的一些知识,也学习了一些Linux的基本操作,也了解并学习了有关Linux开发工具vim 、gcc/g++ 使用、yum工具以及git 命令行提交代码也相信大家都掌握的不错,今天博主带大家了解一下 —— Linux系统下的调试

    2024年02月12日
    浏览(26)
  • 【Linux工具】编译器、调式器、项目自动化构建工具以及git的使用3(GDB调试器的基础使用)

    作者:爱写代码的刚子 时间:2023.7.18 前言:本篇博客主要讲解Linux中调试器的使用,为之后的Linux编程打下坚固的基础。 背景 程序的发布方式有两种,debug模式(能被调试 )和release模式 Linux gcc/g++出来的二进制程序, 默认是release模式 要使用gdb调试,必须在源代码生成二进制程

    2024年02月17日
    浏览(35)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包