linux下C语言开发-GDB调试

文章目录

前边介绍了makefile编写的一些知识,实际上现在有很多自动生成makefile的工具,不需要自己手动编写,有兴趣的朋友可以在网上搜索下。

相信开发过程序的朋友都知道,写程序易,写好程序难。如何写出好程序呢,就是不停的debug,直到没有bug为止。Windows下编程的朋友都比较熟悉Visual Studio,写完程序后直接就可以进行调试了。但是Linux下怎么调试呢,本篇文章就来介绍下GDB工具。

GDB简介

GDB是一个由GNU开源组织发布的、UNIX/Linux操作系统下的、基于命令行的、功能强大的程序调试工具。

一般来说,GDB主要帮助你完成以下功能:
1、设置断点
2、监视程序变量的值
3、程序的单步执行
4、显示/修改变量的值
5、显示/修改寄存器
6、查看程序的堆栈情况
7、远程调试

GDB使用

网上介绍GDB的教程很多,tennfy推荐大家通过下面这篇教程学习下:

GDB十分钟教程

GDB示例

首先给出一个最简单的示例程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>  
 
int iterate(int value)  
{  
    if(1 == value)  
        return 1;  
 
    return iterate(value - 1) + value;  
}  
 
int main()  
{  
    printf("%d\n", iterate(10));  
    return 1;  
}

为了方便GDB调试,我们在使用GCC编译的时候,需要加入参数“-g”,如下所示

1
gcc test.c -g -o test

调试的步骤基本如下所示:

(01) 首先,输入gdb test
(02) 进入到gdb的调试界面之后,输入list,即可看到test.c源文件
(03) 设置断点,输入 b main
(04) 启动test程序,输入run
(05) 程序在main开始的地方设置了断点,所以程序在printf处断住
(06) 这时候,可以单步跟踪。s单步可以进入到函数,而n单步则越过函数
(07) 如果希望从断点处继续运行程序,输入c
(08) 希望程序运行到函数结束,输入finish
(09) 查看断点信息,输入 info break
(10) 如果希望查看堆栈信息,输入bt
(11) 希望查看内存,输入 x/64xh + 内存地址
(12) 删除断点,则输入delete break + 断点序号
(13) 希望查看函数局部变量的数值,可以输入print + 变量名
(14)希望修改内存值,直接输入 print + *地址 = 数值
(15) 希望实时打印变量的数值,可以输入display + 变量名
(16) 查看函数的汇编代码,输入 disassemble + 函数名
(17) 退出调试输入quit即可

参考文章:linux下的C语言开发(gdb调试)



本文出自 TENNFY WU,转载时请注明出处及相应链接。

本文永久链接: http://www.tennfy.com/4437.html

下一篇文章:

上一篇文章:

4人参与了讨论

  1. xilouqingzhu 说:

    需要一个PHp主机,给推荐下吧, :razz:

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

4 + 7 = ?


您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

返回顶部