1. 简介
2. list演示
源码
#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) {
a = 10;
b = 30;
} else {
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;
}
生成带调试信息的编译指令
gcc test.c -o test -g
运行gdb
gdb test
设置参数
(gdb)set args 10 20
(gdb)show args
退出gdb
q
命令
显示源码
(gdb)list
使用g++对cpp文件编译(gcc找不到cpp的库函数)
g++ bubble.cpp main.cpp select.cpp -o main -g
查看非当前文件的代码
(gdb)list bubble.cpp:1
3. 断点演示
在第9行打断点
(gdb)break 9
查看断点信息
(gdb)info break
给非当前文件打断点
(gdb)b bubble.cpp:11
删除断点,delete可简写为d
(gdb)d 1
disable使断点无效