当前位置:   article > 正文

Linux调试器--gdb使用_海思linux-strip没有linux-gdb

海思linux-strip没有linux-gdb

1.背景

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

2.gdb的使用

2.1 安装gdb命令

sudo yum install -y gdb(如果安装过了,就不必再安装)

2.2 学习gdb的常见指令

2.2.1 测试代码

学习之前我们先写一段用于测试的代码,你也可以边看边敲

  1 #include <stdio.h>
  2 #include <time.h>
  3 
  4 int AddToVal(int from,int to)
  5 {
  6     int i = 0;
  7     int result = 0;
  8     for(i = from;i <= to;++i)
  9     {
 10         result += i;
 11     }
 12 
 13     return result;
 14 }
 15 
 16 void print(int sum)
 17 {
 18     long long time_t = time(NULL);
 19     printf("sum = %d time = %lld\n",sum,time_t);                                                
 20 }
 21 
 22 int main()
 23 {
 24     int sum = AddToVal(0,100);
 25 
 26     print(sum);
 27     return 0;
 28 }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

2.2.2 编译代码:

gcc -g mytest.c(或者gcc -g mytest.c -o mytest用来指定生成的可执行程序)。切记:务必带上-g选项,表明生成的是debug模式,如果不带,生成的是release模式。release模式中没有调试信息。

在这里插入图片描述

2.2.3 调试代码:

  • 调试代码本质就是调试可执行程序

指令: gdb + 可执行程序(进入调试状态)

在这里插入图片描述

调试代码是在命令行上调试的,所以我们要看到代码才能更好的完成调试工作,那么如何查看代码呢?

指令: l + 行号
在这里插入图片描述
注意:如果要继续往下面看,直接enter就好

指令: r(run调试运行)
在这里插入图片描述
注意:如果执行r指令,但程序中间也没有断点,那么程序就直接跑完了。如果有断点,就执行到断点处。

指令: c(跳到下一个断点处)

在这里插入图片描述

在VS下面我们经常设置断点,来加快调试效率,那么,在gdb关于断点都有哪些知识呢?
指令: b + 行号(设置断点)
在这里插入图片描述
指令: info b(查看断点)
在这里插入图片描述
指令: d + 编号(去掉断点)
在这里插入图片描述
指令: n (逐过程执行)
在这里插入图片描述
指令: s (逐语句执行)
在这里插入图片描述
指令: p (查看变量)
在这里插入图片描述
但是用p查看变量具有临时性,一但执行其他指令,查看的临时变量就消失了。所以我们一般用display来查看变量,来达到常显示。

指令: display + 变量
在这里插入图片描述
指令:undisplay + 变量(取消常显示)
在这里插入图片描述
指令: until + 行号(跳转到指定行)
在这里插入图片描述
注意:这个跳转具有一些特殊性质,它会首先跳出当前函数,所以跳转到了24行

指令: bt (查看调用堆栈)
在这里插入图片描述

3.gdb常见指令总结

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/742328
推荐阅读
相关标签
  

闽ICP备14008679号