什么是gdb
调试器GDB是Linux下最常见的调试工具。它具有人们可以想到的大多数调试工具的使用特性。gdb调试工具的作用是帮助程序员/用户看到每条指令执行过程中发生了什么。
gdb的基本操作过程
我们接下来用下面这段代码做为例子完成调试:
//vim test.c
#include<stdio.h>
#include<stdlib.h>
void print()
{
int val=10;
while(val--)
{
printf("this is pubilc :%d\n",val);
sleep(1);
}
}
int main()
{
print();
return 0;
}
1.对利用vim写好的程序,gcc /g++ 完成编译链接,生成可执行程序。
只是通过gcc/g++的程序,是不能够实现调试得。
gcc -g test.c -o test
//-g 的意思是显示调试信息
这是加了-g的调试后显示信息
2.打开某exe可执行文件的调试
gdb ./exe //(exe 表示某可执行文件),“./”表示当前目录下,当然这里也可以给绝对路径
3.运行该可执行文件 类似与我们vs中的 F5
run
//run 命令可以使的程序开始执行,我们需要停止继续执行可以ctrl +c 终止
4.开始逐步调试 类似于我们的vs中的F10/F11
start
5. 执行下一步
n // num 相当于F10,执行当前步操作,当遇到函数调用,直径执行完被调用函数
s // step相当于F11,执行当前步操作,当遇到函数调用时,进入被调用函数内部,继续操作
按n调试的结果:
按s调试的结果:
6.显示当前执行行代码上下5行代码
l //list 列出
7.设置、查看、删除断点
b test.c :8
//breakpoint line 设置断点,当我们利用run执行时,会停在b所在的断点行处
//这句话的意思是,在test.c中的第8行添加一个断点
i b //infor 查看断点信息
d 8 //d num 删除某一行的断点,若不写num则默认删除全部断点
c //continue 继续运行到下一个断点处。
8.退出调试
quit
9.查看变量
watch val //监测变量val的变化,当监测到变量值改变运行停止
p val //print 打印变量的值