Linux的调试工具 - gdb(超详细)

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

1. 背景

  • 程序的发布方式有两种,debug模式和release模式
  • Linux gcc/g++出来的二进制程序,默认是release模式
  • 要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项,发布成debug模式
    Linux的调试工具 - gdb(超详细),linux,运维,服务器

2. 开始使用

指令的使用都用下面这个C语言简单小代码来进行演示:

  1 #include <stdio.h>
  2 
  3 int SumAdd(int x)
  4 {
  5     int i=1;
  6     int sum=0;
  7     for(i=1;i<=x;i++)
  8     {
  9         sum+=i;
 10     }
 11     return sum;
 12 }
 13 
 14 int main()
 15 {
 16     printf("%d \n",SumAdd(100));
 17     return 0;
 18 }            

1. list或l 行号:显示文件源代码,接着上次的位置往下列,每次列10行。

例:l 0

Linux的调试工具 - gdb(超详细),linux,运维,服务器


2. list或l 函数名:列出某个函数的源代码。

例:l SumAdd

Linux的调试工具 - gdb(超详细),linux,运维,服务器


3. r或run: 运行程序。

注: 如果没有断点,程序将运行到底

例:r

Linux的调试工具 - gdb(超详细),linux,运维,服务器


4. break或b 行号:在某一行设置断点

例:b 3

Linux的调试工具 - gdb(超详细),linux,运维,服务器


5. n或next:单条执行(类似vs中的F10)

注: 单条执行需要在调试启动的情况下进行,需要先打断点,然后r执行到断点位置

例:n

Linux的调试工具 - gdb(超详细),linux,运维,服务器


6. s或step:进入函数调用(类似vs中的F11)

例:s

Linux的调试工具 - gdb(超详细),linux,运维,服务器


7. break 函数名:在某个函数开头设置断点

例:break SumAdd

Linux的调试工具 - gdb(超详细),linux,运维,服务器


8. info break或info b:查看断点信息。

例:info b

Linux的调试工具 - gdb(超详细),linux,运维,服务器


9. finish:执行到当前函数返回,然后挺下来等待命令

例:finish

Linux的调试工具 - gdb(超详细),linux,运维,服务器


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

例:p sum

Linux的调试工具 - gdb(超详细),linux,运维,服务器


11. continue或c:从当前位置开始连续而非单步执行程序

例:c

Linux的调试工具 - gdb(超详细),linux,运维,服务器


12. run或r:从开始连续而非单步执行程序

r

Linux的调试工具 - gdb(超详细),linux,运维,服务器

13. delete breakpoints:删除所有断点

例;delete breakpoints

Linux的调试工具 - gdb(超详细),linux,运维,服务器


14. delete breakpoints n:删除序号为n的断点

delete breakpoints 5

Linux的调试工具 - gdb(超详细),linux,运维,服务器


15. disable breakpoints:禁用断点

例:disable breakpoints

Linux的调试工具 - gdb(超详细),linux,运维,服务器


16. enable breakpoints:启用断点

例:enable breakpoints

Linux的调试工具 - gdb(超详细),linux,运维,服务器


17. display 变量名:跟踪查看一个变量,每次停下来都显示它的值

例:display sum

Linux的调试工具 - gdb(超详细),linux,运维,服务器


18. undisplay:取消对先前设置的那些变量的跟踪

例:undisplay

Linux的调试工具 - gdb(超详细),linux,运维,服务器


19. until X(行号):跳至X行

例:until 11

Linux的调试工具 - gdb(超详细),linux,运维,服务器


20. breaktrace或bt:查看各级函数调用及参数

例:bt

Linux的调试工具 - gdb(超详细),linux,运维,服务器


21. q或quit:退出gdb

例:q

Linux的调试工具 - gdb(超详细),linux,运维,服务器

(本章完)文章来源地址https://www.toymoban.com/news/detail-727484.html

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

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

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

相关文章

  • Linux中的C/C++语言调试工具 GDB

    GDB(GNU Debugger)是一个功能强大的调试器,用于调试和分析程序的执行过程。它是GNU项目的一部分,可以在多个操作系统上使用,包括Linux、Unix和Windows。 GDB主要用于调试编译后的 可执行文件 ,它可以帮助程序开发人员识别和修复代码中的错误、追踪程序的执行流程、观察和

    2024年02月08日
    浏览(75)
  • 【Linux操作系统】深入了解系统编程gdb调试工具

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

    2024年02月14日
    浏览(48)
  • Linux:gdb调试器的解析+使用(超详细版)

    程序的发布方式有两种,debug模式和release模式 debug模式:可以被调试; release模式:不可以被调试。 为什么需要debuy和release这两个模式呢? 答:程序员在开发的时候需要去调试代码,所以需要debuy模式,而用户一般不懂这些代码的调试不需要debuy模式,只需要快速的下载和安

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

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

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

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

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

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

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

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

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

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

    2024年02月08日
    浏览(48)
  • 【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日
    浏览(103)
  • 【探索Linux】—— 强大的命令行工具 P.6(调试器-gdb、项目自动化构建工具-make/Makefile)

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

    2024年02月12日
    浏览(38)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包