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

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

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 }

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

例:l 0


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

例:l SumAdd


3. r或run: 运行程序。

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

例:r


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

例:b 3


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

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

例:n


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

例:s


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

例:break SumAdd


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

例:info b


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

例:finish


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

例:p sum

相关实践学习
阿里云图数据库GDB入门与应用
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。GDB非常适合社交网络、欺诈检测、推荐引擎、实时图谱、网络/IT运营这类高度互连数据集的场景。 GDB由阿里云自主研发,具备如下优势: 标准图查询语言:支持属性图,高度兼容Gremlin图查询语言。 高度优化的自研引擎:高度优化的自研图计算层和存储层,云盘多副本保障数据超高可靠,支持ACID事务。 服务高可用:支持高可用实例,节点故障迅速转移,保障业务连续性。 易运维:提供备份恢复、自动升级、监控告警、故障切换等丰富的运维功能,大幅降低运维成本。 产品主页:https://www.aliyun.com/product/gdb
相关文章
|
6天前
|
NoSQL Linux 开发工具
【Linux】Linux开发工具(yum、gdb、git)详解
【Linux】Linux开发工具(yum、gdb、git)详解
|
7天前
|
NoSQL Linux 程序员
Linux调试器--gdb的介绍以及使用
Linux调试器--gdb的介绍以及使用
|
13天前
|
NoSQL Java Unix
Linux:调试器 - gdb
Linux:调试器 - gdb
27 1
|
13天前
|
NoSQL Linux 编译器
【Linux】开始使用gdb吧!
这篇文章我们来学习 gdb 的使用方法。我们在Windows端编写代码时有宇宙最强编译器VS2022帮助我们调试,那Linux端有没有一款强大的调试工具呢???
53 17
【Linux】开始使用gdb吧!
|
13天前
|
NoSQL Linux C语言
【Linux】Linux调试器-gdb使用
【Linux】Linux调试器-gdb使用
8 0
|
13天前
|
NoSQL 搜索推荐 openCL
【C/C++ 调试 GDB指南 】gdb调试基本操作
【C/C++ 调试 GDB指南 】gdb调试基本操作
79 2
|
13天前
|
NoSQL Linux 开发工具
【深入解析git和gdb:版本控制与调试利器的终极指南】(下)
【深入解析git和gdb:版本控制与调试利器的终极指南】
|
13天前
|
NoSQL 小程序 C语言
GDB调试学习(四):段错误
GDB调试学习(四):段错误
49 0
|
13天前
|
NoSQL
GDB调试学习(三):观察点
GDB调试学习(三):观察点
45 0
|
13天前
|
NoSQL
GDB调试学习(二):断点
GDB调试学习(二):断点
41 0