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调试器的作用及其使用方法,收获很多。
本文详细介绍了在Ubuntu环境下使用GDB进行程序调试的操作流程,包括基本调试步骤、段错误处理和利用core文件诊断问题。从设置断点、查看变量到跟踪执行,一步步引导读者掌握GDB的强大功能。
4765

被折叠的 条评论
为什么被折叠?



