首页 > 编程知识 正文

gdb 调试,gdb调试步骤

时间:2023-05-05 10:21:17 阅读:232781 作者:4280

嵌入式系统--GDB调试 GDB的介绍GDB的常用命令GDB的使用启动gdb实例 心得体会

GDB的介绍

GDB :GDB全称:GNU Debugger,是GNU工程为GNU操作系统开发的调试器。它可以用于调试C、C++、Objective-C、Pascal、Ada等语言编写的程序。被调试的程序可以跟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的使用

GDB的使用条件
程序要用GDB调试,需要添加调试信息。
添加方法:
gcc的-g选项为程序添加调试信息。
例如:gcc –g –o hello hello.c

启动gdb

• gdb [无语的橘子]

实例

1.首先我们用vim编辑器编写名字为RevertNum.c的程序,代码如下:

#include <stdio.h>void ShowRevertNum(int iNum){ while (iNum > 10) {printf("%d", iNum % 10); iNum = iNum / 10; } printf("%dn", iNum);}int main(void){ int iNum; printf("Please input a number :"); scanf("%d", &iNum); printf("After revert : "); ShowRevertNum(iNum);}

此段程序的功能是实现实现整形数据反转。

2.用Gcc编译,代码如下:
3.输入gdb +文件名启动gdb,如下:


得到:
4.输入l显示代码,输入list显示主程序:


5.通过行号设置断点,我设置的是15行,并输入info b 查看断点:

6.通过函数名设置断点,并输入info b 查看所有的断点:

7.执行程序

8.输入whatis iNum和print iNum查看变量类型和变量内容
9.执行程序,输入值为123

10.得到结果

心得体会

通过本次实验,我基本上掌握了GDB调试的方法。但还是有很多不足,以后慢慢调试,慢慢进步。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。