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

本文转自网络文章,已获取原文作者授权。 原文作者:originalHSL.

1. 背景

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

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 }            

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

例:l0

在这里插入图片描述


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

例:l SumAdd

在这里插入图片描述


2.3 r或run: 运行程序。

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

例:r

在这里插入图片描述


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

例:b 3

在这里插入图片描述


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

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

例:n

在这里插入图片描述


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

例:s

在这里插入图片描述


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

例:break SumAdd

在这里插入图片描述


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

例:info b

在这里插入图片描述


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

例:finish

在这里插入图片描述


2.10 p 变量:打印变量值。

例:p sum

在这里插入图片描述


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

例:c

在这里插入图片描述


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

r

在这里插入图片描述

2.13 delete breakpoints:删除所有断点

例;delete breakpoints

在这里插入图片描述


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

delete breakpoints 5

在这里插入图片描述


2.15 disable breakpoints:禁用断点

例:disable breakpoints

在这里插入图片描述


2.16 enable breakpoints:启用断点

例:enable breakpoints

在这里插入图片描述


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

例:display sum

在这里插入图片描述


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

例:undisplay

在这里插入图片描述


2.19 until X(行号):跳至X行

例:until 11

在这里插入图片描述


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

例:bt

在这里插入图片描述


2.21 q或quit:退出gdb

例:q

在这里插入图片描述

原文链接:https://blog.csdn.net/originalHSL/article/details/132948667

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值