什么是GDB:
GDB - - - (GNU symbolic debugger)是Linux平台下最常用的一款程序调试器。
自己的Linux是否安装GDB?
一般来说,使用Ubuntu的话,系统就会自带的有GDB调试器的
命令窗口输入如下命令可以查看是否安装了gdb:
gdb -v
结果:
没有安装的话会出现如下:
[stu@localhost Desktop]$ gdb -v
bash: gdb: command not found
具体的安装过程,网上有很多的教程,这里不再赘述。
快速上手使用
示例1:正常代码调试分析
#include <stdio.h>
int main (){
unsigned long long int n, sum;
n = 1;
sum = 0;
while (n <= 100){
sum = sum + n;
n = n + 1;
}
return 0;
}
编译:
g++ -o main main10.c -g
-g 的作用:包含必要的调试信息,比如各行代码所在的行号、包含程序中所有变量名称的列表(又称为符号表)等,不加 -g 则没有,运行gdb时会报错
开始调试:
gdb main
输出如下:
发现会有很多的免责声明,可以通过 -q 选项进行屏蔽
gdb main -q
这下就清爽多了
GBD常用命令:
示例2:崩溃代码调试分析
#include "stdio.h"
int main(){
int *b = 0;
*b = 10;
printf("******** b = %d ************ ",*b);
}
g++ -o main main10.c -g
直接运行会有如下结果:
可以看到箭头3处打印出来的b值为空,因此出现了段错误,进而导致程崩溃。