Linux调试工具GDB使用教程


本文摘自PHP中文网,作者小云云,侵删。

本文主要介绍了Linux调试工具GDB使用简易教程,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下,希望能帮助到大家。

声明:本博客内容是由本人经过实验楼教程整理得来。

GDB的相关概念

GDB, 是 The GNU Project Debugger 的缩写, 是 Linux 下功能全面的调试工具。GDB 支持断点、单步执行、打印变量、观察变量、查看寄存器、查看堆栈等调试手段。在 Linux 环境软件开发中,GDB 是主要的调试工具,用来调试 C 和 C++ 程序。

GDB的相关操作

下面给出一个具有buging.c的程序:

1

2

3

4

5

6

7

8

9

10

11

12

[yqtao@localhost linux]$ cat buging.c

#include <stdio.h>

int getSum(int n) {

    int sum=0,i;

    for (i=1;i<=n;i++)

        sum+=i;

    return sum;

}

int main(){

    int res=getSum(100);

    printf("1+2+...+100=%d\n",res);

}

如果要调试程序,则在进行gcc编译的时候要加上-g参数

gcc -g -o bugging bugging.c

进入gdb:

gdb buging

部分gdb命令:

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

29

30

31

32

33

34

35

36

37

38

// 查看源码

// 查看第几行附近

// 可简写成l 2

(gdb) list 2  

1    #include <stdio.h>

2    int getSum(int n) {

3        int sum=0,i;

4        for (i=1;i<=n;i++)

5            sum+=i;

6        return sum;

7    }

 

// 查看main函数附近的源码

(gdb) list main

3        int sum=0,i;

4        for (i=1;i<=n;i++)

5            sum+=i;

6        return sum;

7    }

8    int main(){

9        int res=getSum(100);

10       printf("1+2+...+100=%d\n",res);

11   }

 

 

// 设置断点

// break +n在第几行设断点

(gdb) break 8

Breakpoint 1 at 0x4004fa: file buging.c, line 8.

// break +函数名 ,在函数名处设断点

(gdb) break getSum

Breakpoint 2 at 0x4004cb: file buging.c, line 3.

 

//查看断点信息

(gdb) info breakpoints

Num   Type      Disp Enb Address      What

1    breakpoint   keep y  0x00000000004004fa in main at buging.c:8

2    breakpoint   keep y  0x00000000004004cb in getSum at buging.c:3

断点信息中每一项的信息:

阅读剩余部分

相关阅读 >>

源服务器访问目标服务器时出现异常如何抓包获取最原始的交互数据

全面详解Linux下的top命令――实时监控服务器状况

创建的自动快照策略怎么可以应用到任一磁盘

Linux etc是什么

查看Linux下所有用户的方法是什么

Linux是什么

Linux中常用目录有哪些作用

Linux中如何实现文件的修改与保存

Linux rm命令是什么

Linux的作用是什么

更多相关阅读请进入《Linux》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...