gdb 调试程序

时间:2021-09-06 22:17:54

一. 何为gdb

    1. UNIX及UNIX-like下的调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具相比于VC、真的优点是具有修复网络断点以及恢复链接等功能,比BCB的图形化调试器有更强大的功能。所谓“尺有所短,寸有所长”就是这个道理。

    2. 总的来说,GDB, 又称GNU调试器,是用来帮助调试我们程序的工具

二. gdb 有何用

    1. GDB可以干以下几件事:
        1.1. 给程序设置(特定条件下的)断点
        1.2. 当程序停在断点处时,我们查看所有变量、寄存器的值
        1.3. 当程序停在断点处时,我们除了能查看所有变量、寄存器的值以外,还能在不改变源代码的情况下改变这些值(这个确实屌)

    2. GDB 常用命令

gdb 调试程序

 

三. gdb的使用

    1. gbd 基本语法

         1.1. 先写一个test.c 

gdb 调试程序gdb 调试程序
1 #include <stdio.h>
2 int main()
3 {
4     int a = 1;
5     int b = a;
6     printf("a = %d, b = %dn",a, b);
7     return 0;
8 
9 }
View Code

         1.2. 编译文件

gcc -o test test.c  -g

               1.2.1. 加上-g选项以后,gcc在编译是会做以下额外的操作:

                     1. 创建符号表,符号表包含了程序中使用的变量名称的列表。

                     2. 关闭所有的优化机制,以便程序执行过程中严格按照原来的C代码进行。

        1.3. 进入gdb

gdb 调试程序

 

         1.4. 常用命令使用

             1.4.1. start

                  1. 用start开始单步调试,程序从main开始

  gdb 调试程序

 

            1.4.2. 单步执行<n>

  gdb 调试程序

 

             1.4.3. gdb断点调试

gdb 调试程序