多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

gdb/cgdb

gdb/cgdb 1.git版本控制器结论.git只记录变化git是一个去中心化的版本控制器但是我们通常使用的时候会按照中心化来使用version用来判断我的电脑上面是否安装了git也有一些关键词git add把当前目录下所有的文件都上传到我的暂存区当中git commit -m 提交日志提交到本地仓库中git push 上传到远端仓库中这个就是git的工作流程图git status查看当前文件夹里面的文件的状态是在本地仓库远端仓库还是在缓存区git log 查看当前仓库的提交日志git pull 同步一下仓库多人共同使用一个仓库的时候会使用这个2.gdb/cgdbgdb/cgdb是用来调试我们的代码的gdb ——————可执行程序的文件此时我们直接使用的话会发现无法使用这就引起了一个知识点我们在vs的时候会发现一份代码往往有两个版本一个版本是debug另外一个版本是releasedebug包含调试信息会增加exe的体积对用户没有任何的用处release给用户不包含调试信息体积较小gcc/g默认对编译方式是release版本我们需要的是debug版本所以在makefile的时候就需要这样写这样写就默认debug版本注意刚开始进入的时候依旧显示不出原来的代码要输入start显示源代码就可以了调试代码的第一步很重要是什么呢?就是打断点我们此时给16行打了一个断点r运行代码运行到咱们打断点这个地方l用于查看源代码但是只能查看附近的此时我们的光标在16行那么就可以看16行上下的代码也可以l 文件行号这种方式可以查看这个文件这个行号的附件代码info b是用来查看断点的信息d删除断点注意的是这里删除断点的序号要填info的序号s我们运行到进入函数的时候在VS中通常有两种方法一种是进入函数逐语句另外一种是按过程也就是不进入函数里面s逐语句此时我们进入到了函数里面n逐过程此时我们没有进入直接输出了结果p:当然我们调试的时候往往需要看到某个函数的值此时就可以使用p这个语法p后面跟变量名就可以但是我们继续向下运行这个变量名就消失了有没有办法不让他消失display就可以一直显示我们不想显示了就直接undisplay就可以结束until 行号要是代码过长就可以直接使用这个关键字直接跳到这个位置c从当前断点直接运行到下一个断点总结until/finish/c其中finish是进入函数之后直接跳出最后调试的本质就是发现问题人找到问题gdb分析问题人解决问题人补充关键词disable 我们可以禁用这个断点,但是不删除enable:和disable一样,释放被禁用的断点watch检测一个值,要是变化了就视为断点,也就是条件断点我们在调试过程中,发现了一个错误,有时候没必要直接退出在该代码set var后面跟变量名新值条件断点b 行号 if ......如果不满足条件就默认没有断点,和上面的watch类似上面描述的情况是默认此位置没有断点的要是这个位置有一个普通断点,就可以使用condition类似于这样就可以把一个普通断点变成条件断点不需要加if
返回列表