GDB使用方法

例子程序tst.c

#include <stdio.h>
void main()
{
    int i;
    long result = 0;
    for ( i=1; i <= 100; i++)
    {
        result += i;
    }
    printf("result = %d\n",result);
}

1.首先编译程序tst.c生成可执行程序tst

gcc -g tst.c -o tst

2.启动GDB

gdb tst

3.在main处设置断点 (b=break)

b main

4.运行程序,程序会停在断点处 缩写r

run

5.单步运行 缩写n

next

6.连续运行 缩写c

continue

7.退出 缩写q

quit

常用命令

list 缩写 l 会显示程序

break 缩写 b 打断点

1.可以是函数
2.可以是行号
3.在多个文件时可以选择某个文件的第几行

例子: b tst.c:25

4.行号加if判断,条件为真断点生效

例子: b 23 if i =10
当i等于10的时候第23行断点生效

info break 查看所有断点

delete 断点号 删除断点操作

print 变量名 查看指定变量值 缩写 p

step 单步运行程序(进入子程序) 缩写s

next 也是单步运行程序 (不会进入子程序)

continue 继续运行程序,遇到断点会停下来,没有断点继续运行。 缩写c

finish 运行程序直到当前函数结束

watch 变量名 对指定变量进行监控

即,在使用watch时步骤如下:

1. 使用break在要观察的变量所在处设置断电;

2. 使用run执行,直到断点;

3. 使用watch设置观察点;

4. 使用continue观察设置的观察点是否有变化。