Ubuntu下的GDB调试操作
(一)GDB调试举例
1.新建一个revertnum.c文件
2.进入c文件的编辑界面
3.输入程序代码,保存退出。
#include <stdio.h>
void ShowRevertNum(int iNum)
{
while (iNum > 10)
{
printf("%d", iNum % 10);
iNum = iNum / 10;
}
printf("%d\n", iNum);
}
int main(void)
{
int iNum;
printf("Please input a number :");
scanf("%d", &iNum);
printf("After revert : ");
ShowRevertNum(iNum);
}
4.编译c文件
5.进入gdb调试模式
6.输入l,显示代码及行号
7.输入list继续显示余下代码
8.通过行号设置断点
9.通过函数名设置断点
10.用info b命令查看所有断点信息
11.用run命令执行程序
12.用whatis命令查看iNum的类型
13.打印iNum的值
14.用c命令继续执行程序
15.打印此时iNum的值
16.用s命令进行单步调试
注:期间要用n命令跳出printf.c文件
17.打印此时iNum的值,并用s命令单步调试,调试结束。
(二)GDB调试的段错误调试举例
1.新建一个segdemo.c文件
2.进入segdemo.c文件的编辑界面
3.输入程序代码,保存退出
#include<stdio.h>
#include<string.h>
#define BUFSIZE 256
static char acBuf[BUFSIZE];
static char *pStr;
int main(void)
{
printf("Please input a string:");
gets(pStr);
printf("\nYour string is:%s\n",pStr);
}
4.编译segdemo.c文件
5.执行可执行文件segdemo,显示段错误
6.进入GDB调试模式
7.用l命令查看代码及行数
8.打印pStr的值
9.设置断点
10.用r命令重新运行程序
11.修改变量的值并单步执行
(三)借助core文件进行GDB调试
1.使用ulimit -c 1000命令使系统产生core文件,运行程序
2.进入GDB调试模式,注意在最后加上core
总结
这次的实验让我了解到了Linux系统下的GDB调试器的作用及其使用方法,收获很多。