掌握一个清屏快捷键:CTRL+L
01 / 什么是GDB
02 / 准备工作
03 / GDB 命令 -- 启动、退出、查看代码
在~/Linux/lesson08目录下有test.c文件
#include <stdio.h>
#include <stdlib.h>
int test(int a);
int main(int argc,char* argv[]){
int a,b;
printf("argc = %d\n",argc);
if(argc < 3){ //参数个数<3,就给a和b赋值
a = 10;
b = 30;
}
else{
//atoi()是C语言中的字符串转换成整型数的一个函数
a = atoi(argv[1]);
b = atoi(argv[2]);
}
printf("a = %d,b = %d\n",a,b);
printf("a + b = %d\n",a + b);
for(int i=0;i<a;++i){
printf("i = %d\n",i);
// 函数调用
int res = test(i);
printf("res value: %d\n",res);
}
printf("THE END !!!\n");
return 0;
}
int test(int a){
int num = 0;
for(int i=0;i<a;++i){
num += i;
}
return num;
}
(1)不加-g gcc test -o test1,生成test1文件
(2)执行 gcc test.c -o test -g ,生成test文件
(3)对比一下test和test1文件大小,test的文件大小是11K,test1的文件大小是8.3K,说明-g的确是把一些调试信息加入到可执行文件当中了。
(4)执行./test 10 20
(5)执行gdb test命令
启动
gdb 可执行程序
给程序设置参数 / 获取设置参数
set args 10 20
show args
注意:有一些程序需要设置参数,例如上述的test.c程序,main函数需要指定参数。
(6)set args 10 20
(7)show args
(8)输入q/quit,切换到当前终端
退出
quit或q退出
注意:在进行准备工作之后才可以期待调试。
(9)输入help,可以查看命令
◼ GDB 使用帮助
help
help 具体命令
用来查看调试帮助或具体指令的相关信息