Ubuntu下的GDB调试操作

本文详细介绍了在Ubuntu环境下使用GDB进行程序调试的操作流程,包括基本调试步骤、段错误处理和利用core文件诊断问题。从设置断点、查看变量到跟踪执行,一步步引导读者掌握GDB的强大功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(一)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调试器的作用及其使用方法,收获很多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值