Ubantu系统上程序代码的GDB调试

本文介绍了GDB,一个GNU操作系统下的调试器,适用于多种编程语言。讲解了如何为程序添加调试信息,启动GDB,以及一系列基本命令如`file`、`list`、`next`和`break`等。通过一个简单的代码实例展示了如何调试C程序,强调了GDB在程序调试中的重要性,并鼓励读者进一步深入学习。
摘要由CSDN通过智能技术生成

一、GDB的简单介绍

GDB(全称:GNU Debugger)是GNU工程为GNU操作系统开发的调试器。它可以用于调试C、C++、Objective-C、Pascal、Ada等语言编写的程序。

二、GDB的简单使用

1.GDB的使用条件
程序要用GDB调试,需要添加调试信息。
gcc的-g选项为程序添加调试信息。

gcc –g –o helloworld helloworld.c

2.启动GDB
启动方法:
gdb [程序名称]

3.GDB常用命令
GDB命令的介绍
命令名 命令功能
file 装入想要调试的可执行文件
kill 终止正在进行的调试程序
list 列出产生执行文件的源代码的一部分
next 执行一行源代码但不进入函数内部
step 执行一行源代码并可以进入函数内部
run 执行当前被调试的程序
c 继续运行程序
quit 终止gdb
watch 使你能监视一个变量的值而不管它何时被改变
backtrack 栈跟踪,查看代码被谁调用
print 查看变量的值
make 不用退出gdb,就可以重新生成可执行文件
shell 不用退出gdb,就可以使用UNIX shell命令
whatis 显示变量或者函数类型
break 设置断点
info break 显示当前断点信息,包含到达断点处的次数
info files 显示被调试文件的详细信息
info func 显示所有函数名称
info local 显示当前的函数的局部变量
info prog 显示被调试程序的执行状态
delete [n] 删除第n个断点
disable [n] 关闭第n个断点
enable [n] 开启第n个断点
ptype 显示结构定义
set variable 设置变量的值
call name(args) 调用并执行为name,参数为args的函数
Finish 终止当前函数并输出返回值
return value 停止当前函数并返回value给调用者

三、GDB调试实例

实例1代码(实现整形数据反转):

#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);
}

程序编译:
在这里插入图片描述
程序调制:
在这里插入图片描述
小结
GDB的简单展示到此结束,很多地方解释不清楚,还需要深入学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值