gdb就是GNU debugger
通过调试circle_x.c演示gdb调试器的使用。
实现输入半径得到面积的功能。
源码如图示。
源码实现效果如图示。
通过gcc -g circle_x.c -o circle_x.debug命令生成可调试文件
gdb circle_x.debug 命令进入调试环境
直接运行,如无bug直接输出结果
break area_print 或 break 7设置该函数断点,提示断点已创建在0x400621这个函数地址。
run命令进入调试过程,按提示输入半径,回车,执行到断点位置。
n命令,next的意思,下一条命令。
输入print x命令发现x当前不存在,可能的原因是main函数的x内存已经释放,因此在第19行设置断点,同时输入n命令继续执行下一条命令,发现即执行area_print函数的第一句执行c.area的面积。
print c.area 输出变量值
c 是continue的意思,程序执行到断点19行,剩余return 0未执行。
输入 n 回车
输入q命令,按提示y回车退出gdb调试
clear 行或clear 函数名
info命令会列出可以显示的相关信息,info breakpoints显示断点个数。或简写为info break
s: 执行一bai行源程序代码,如果此行代du码中有函数调用,则进入zhi该函数;n: 执行dao一行源程序代码,此行代码中的函数调用也一并执行。s 相当于其它调试器中的“Step Into (单步跟踪进入)”;n 相当于其它调试器中的“Step Over (单步跟踪)”。
本文地址:https://blog.csdn.net/natureworld2010/article/details/107329388
如对本文有疑问, 点击进行留言回复!!
网友评论