gdb.c文件
#include <stdio.h>
int func(int n)
{
int sum=0,i;
for(i=0; i<n; i++){
sum += i;
}
return sum;
}
int main(void)
{
int i;
long result=0;
for(i=1; i<=100; i++){
result +=i;
}
printf("result[1-100] = %ld \n", result);
printf("result[1-250] = %d \n", func(250));
}
1、编译生成执行文件:
$ gcc -g gdb.c -o testgdb //使用gdb调试
结果:
2、启动gdb
$ gdb testgdb
结果:
3、设置断点(在特定的行或者某个函数)
break 16
结果:
break func
结果:
4、查看断点信息
info break
结果:
5、运行程序
r(run的简写)
结果:
程序在第一个断点处停住。
6、继续执行程序
n(next的简写)
结果:
7、打印变量i
p i
结果:
8、查看函数堆栈
bt
结果:
9、退出函数
finish
结果:
10、程序继续运行
c(Continuing的简写)
结果:
注:(process 271) exited with code 027 程序退出,调试结束。
11、退出gdb
q