1.git
版本控制器
结论.git只记录变化
git是一个去中心化的版本控制器,但是我们通常使用的时候会按照中心化来使用,
version
用来判断我的电脑上面是否安装了git
也有一些关键词
git add把当前目录下所有的文件都上传到我的暂存区当中
git commit -m " "提交日志,提交到本地仓库中
git push 上传到远端仓库中
这个就是git的工作流程图
git status
查看当前文件夹里面的文件的状态,是在本地仓库?远端仓库?还是在缓存区
git log 查看当前仓库的提交日志
git pull 同步一下仓库(多人共同使用一个仓库的时候会使用这个)
2.gdb/cgdb
gdb/cgdb是用来调试我们的代码的,
gdb ——————(可执行程序的文件),
此时我们直接使用的话会发现,无法使用,这就引起了一个知识点
我们在vs的时候,会发现,一份代码往往有两个版本,一个版本是debug
另外一个版本是release
debug:包含调试信息,会增加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