一、实验任务
- 编译运行附件中testgdb.c,记录编译运行结果
- 参考https://www.cnblogs.com/rocedu/p/16714289.html调试代码,至少涵盖4种断点(行断点,函数断点,临时断点,条件断点)、
- 使用单步运行等其他命令。、
二、实验过程
1.运行testgdb.c
#include <stdio.h>
int sum(int m);
int main()
{
int *pi;
int i, n = 0;
pi = &i;
int arr[3] = { 10, 20, 30 };
pi = arr;
sum(50);
for (i = 0; i <= 50; i++) {
n += i;
}
printf("The sum of 1-50 is %d \n", n);
}
int sum(int m)
{
int i, n = 0;
for (i = 1; i <= m; i++) {
n += i;
}
printf("The sum of 1-50 is %d \n", n);
return n;
}
运行截图:
2.断点测试
使用gdb运行testgdb
查看断点信息
info breakpoints
-
行断点
通过b设置7、8、9三个行断点,通过s命令进行执行到下一个断点。
-
函数断点
将函数断点设置在sum函数
-
临时断点
通过tb命令设置了三个临时断点
- 条件断点
当变量 i 的值等于 10 时,程序会在 testgdb.c 文件的第 14 行暂停。
3.单步运行
通过n命令实现