当前位置: 移动技术网 > 网络运营>服务器>Linux > linux下gdb调试circle_x.c

linux下gdb调试circle_x.c

2020年07月15日  | 移动技术网网络运营  | 我要评论

终端使用gdb调试circle_x.c

gdb就是GNU debugger
通过调试circle_x.c演示gdb调试器的使用。

调试使用的源码circle_x.c

实现输入半径得到面积的功能。
源码如图示。
在这里插入图片描述
源码实现效果如图示。
在这里插入图片描述

生成可调试文件

通过gcc -g circle_x.c -o circle_x.debug命令生成可调试文件
在这里插入图片描述

gdb circle_x.debug进入调试环境

gdb circle_x.debug 命令进入调试环境
在这里插入图片描述

run 命令执行运行过程

直接运行,如无bug直接输出结果
在这里插入图片描述

break area_print 函数断点

break area_print 或 break 7设置该函数断点,提示断点已创建在0x400621这个函数地址。
在这里插入图片描述

run 命令进入调试

run命令进入调试过程,按提示输入半径,回车,执行到断点位置。
在这里插入图片描述

n 命令执行下一条命令

n命令,next的意思,下一条命令。
输入print x命令发现x当前不存在,可能的原因是main函数的x内存已经释放,因此在第19行设置断点,同时输入n命令继续执行下一条命令,发现即执行area_print函数的第一句执行c.area的面积。
在这里插入图片描述

print 打印输出变量

print c.area 输出变量值
在这里插入图片描述

c命令跳转到下一个断点

c 是continue的意思,程序执行到断点19行,剩余return 0未执行。
在这里插入图片描述

n 命令继续执行到程序结束

输入 n 回车
在这里插入图片描述

q 命令退出调试

输入q命令,按提示y回车退出gdb调试
在这里插入图片描述

clear 命令删除断点

clear 行或clear 函数名
在这里插入图片描述

delete breakpoints删除所有断点

在这里插入图片描述

info命令和info breakpoints命令

info命令会列出可以显示的相关信息,info breakpoints显示断点个数。或简写为info break
在这里插入图片描述

save breakpoint xx.dp 保存断点

在这里插入图片描述

s单步和n单步的区别

s: 执行一bai行源程序代码,如果此行代du码中有函数调用,则进入zhi该函数;n: 执行dao一行源程序代码,此行代码中的函数调用也一并执行。s 相当于其它调试器中的“Step Into (单步跟踪进入)”;n 相当于其它调试器中的“Step Over (单步跟踪)”。

本文地址:https://blog.csdn.net/natureworld2010/article/details/107329388

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网