这两个步骤用于识别提交代码的身份,一个你的名字,一个你的邮箱
我们发现少了一个.gitignore,因为.gitignore是隐藏文件,所以使用ls -la查看
上面可以看到提交人的信息,以及时间,以及提交备注
将上节课写的代码拷贝到当前目录下
1.git add .
//将该目录的修改记录同步到本地仓库去
2.git commit -m+“提交备注”
//正式将修改更新到本地仓库
根据.git更改时间发现仓库更新
3.git push
//将本地仓库内容同步到gitee远端仓库
在windows下我们使用小乌龟上传代码到gitee远端仓库 ,我们发现会有很多.obj ,.exe文件 ,我们不需要这些,我们应该怎么办?
我们先新建3个文件 c.txt x.txt2 z.txt1 我们不要上传.txt文件,.txt2,.txt1上传
将这个后缀添加到.gitignore中就可以了
添加不要上传的文件后缀
使用三板斧提交同步代码到远端
发现没有出现.txt后缀。测试成功
我们如何在本地删除一个文件,然后同步到远端呢?
用户一般用的产品只需要使用,不用带调试信息,用户也不需要调试信息,使用release版本就行,而程序员需要看调试信息找错误,所以程序员使用的debug版本,debug版本比release大是因为携带调试信息
这里有一个问题?
for循环形式只是在c99下是允许的 ,所以要修改一下我的for循环模式,c89将变量定义写在外面
exe1为release版本下的
exe2为debug版本下的
明显在debug下生成的.exe文件大
使用readelf指令可以读取可执行文件的详细信息,并且通过管道(相当于把管道前处理后再干什么),grep指令将debug信息列举
我们发现exe1没有debug信息,exe2有debug信息
1.gdb+在debug下生成可执行文件的文件名
3.list+文件名:行号/函数名
3.l+文件名:行号/函数名
(简写)
接着我们对应着vs的调试理解gdb调试下的指令
我们将代码拷到vs上去
4.b+文件名:行号/函数名
4.b+ 行号/函数名
(简写)
直接看红圈出现的位置
在打断点的行再次按一下F9或者用鼠标点击一下断点取消断点
7.disable +断点编号
(断点关闭)
7.enable +断点编号
(断点重启)
在vs中逐过程:F10
在gdb中的逐过程:
8.next
8.n
(简写)
我们在主函数那打个断点,然后使用指令r让程序跑起来,遇到main函数处打的断点停下来,然后按n,开始逐过程,我们发现到了add函数不进函数内部,z直到程序结束.
在vs中逐语句:按F11
在gdb逐语句:
9.step
9.s
(简写)
同理,我们在主函数打断点,按r让程序跑起来,当到断点处,按s/step,我们发现可以进入add函数中
10.print+变量名/变量地址
10.p+变量名/变量地址
(简写)
在gdb中:
11.display+变量名/变量地址
11.d+变量名/变量地址
在gdb中:
12.undisplay+ 要取消持续显示的变量的编号
在gdb中:
13.continue
13.c
这个是我们的程序
我们分别在16行,18行打断点
在16行的第一个断点停下,按continue/c进入下一个断点处.
在gdb中:
15.until
16行直接到18行,并且中间都被执行.
在gdb中:
17.set var +变量名=(修改后的值)
在gdb中:
18.bt
在add函数中,我们发现add函数的栈帧在主函数的上面压着,当finish完add后,只剩下main的栈帧.
总结
list/l 行号:显示binFile源代码,接着上次的位置往下列,每次列10行。
list/l 函数名:列出某个函数的源代码。
r或run:运行程序。
n 或 next:单条执行。
s或step:进入函数调用
break(b) 行号:在某一行设置断点
break 函数名:在某个函数开头设置断点
info break :查看断点信息。
finish:执行到当前函数返回,然后挺下来等待命令
print§:打印表达式的值,通过表达式可以修改变量的值或者调用函数
p 变量:打印变量值。
set var:修改变量的值
continue(或c):从当前位置开始连续而非单步执行程序
run(或r):从开始连续而非单步执行程序
delete breakpoints:删除所有断点
delete breakpoints n:删除序号为n的断点
disable breakpoints:禁用断点
enable breakpoints:启用断点
info(或i) breakpoints:参看当前设置了哪些断点
display 变量名:跟踪查看一个变量,每次停下来都显示它的值
undisplay:取消对先前设置的那些变量的跟踪
until X行号:跳至X行
breaktrace(或bt):查看各级函数调用及参数
quit:退出gdb