五.Linux——调试

五.Linux——调试
学习调试我们先要清楚我们要调试的是什么test.c 编译- testtest是我们编译好的可执行程序我们要调试的是./test 运行起来的进程调试的作用发现错误 捕捉程序异常崩溃、死循环、输出结果错误、逻辑不对、卡顿。定位根因 区分语法错逻辑错变量值错误边界条件问题资源 / 环境问题验证猜想 观察变量、内存、执行流程确认 “哪一步开始出错”。修复并验证 修改代码后再次运行确认问题消失避免重复踩坑。理解运行机制学习用途 跟踪代码一步步执行看清循环、分支、函数调用、变量变化适合学 C、Linux 程序。调试(应用我们安装好的gdb)1.gcc -o test test.c -g 生成开发调试版本(必须要生成test的开发调试版本才可进行调试,就像vs软件中调试c语言程序必须使用debug)2.gdb调试,内部使用的命令以我展示的代码为例l显示代码(l行号跳转到当前文件行 lfilename:行号跳转到指定文件行)b行号加断点(或者 b函数名)info break显示断点信息(可以清晰的看到插入了两个断点一个在第 7行一个在printf函数)r运行程序(一次只能运行一次)(以上面为例输入r代码会执行到第一个断点位置停下)n单步执行c继续运行一直运行到断点或需要手动输入的地方不再单独执行(可以清楚看到当我出入c后会跳过其它代码直接到我一直需要手动输入的地方跟上面单步执行比起来可以节省很多时间)p打印(变量表达式地址)s进入函数finish跳出函数bt显示函数调用信息及现在所在位置q退出程序这就是调试的全部内容调试在我们学习代码的过程中非常重要需要我们仔细连续达到熟练彩蛋主函数中有三个参数