一、使用步骤


1、编译源代码

gcc|g++ 源文件 -o 目标文件 -g -g表示将源代码信息编译到可执行文件中

#c程序
gcc gdb-sample.c -o gdb-sample -g
#c++程序
g++ gdb-sample.cpp -o gdb-sample -g

2、进入gdb命令行

gdb
file gdb-sample #加载程序文件

二、常用命令


1、加载程序命令

file 源文件名

2、运行加载的程序

r

3、Continue,继续执行,停到下一个断点

c

4、添加断点

(1)b 行号|函数名|*代码地址Breakpoint的简写,设置断点

会产生一个断点标号,从0开始递增

b 行号|函数名|*代码地址

(2)d 断点标号 Delete breakpoint删除断点

d 断点标号

5、单步进入Step Into(vs F11)

s

6、单步跟踪Step Over(vs F10)

n

7、汇编的snsini

8、输出变量的值

p <变量名称>

9、显示各类信息,Info的简写

i

10、退出

q

11、帮助命令

help [命令名称]

三、样例


1、测试源码

gdb-sample.c

#include <stdio.h>

int nGlobalVar = 0;

int tempFunction(int a, int b)
{
    printf("tempFunction is called, a = %d, b = %d /n", a, b);
    return (a + b);
}

int main()
{
    int n;
    n = 1;
    n++;
    n--;

    nGlobalVar += 100;
    nGlobalVar -= 12;

    printf("n = %d, nGlobalVar = %d /n", n, nGlobalVar);

    n = tempFunction(1, 2);
    printf("n = %d", n);

    return 0;
}

2、测试命令

gcc gdb-sample.c -o gdb-sample -g
gdb
file gdb-sample
r
b main
r
s
p n
b 26
c
p nGlobalVar
c
p a
p b
c
display /i $pc
r
si
si
d
b *main
r
i r
i r eax
q