git和gdb

发布于:2025-05-13 ⋅ 阅读:(16) ⋅ 点赞:(0)

git基础使用

相关概念

本地仓库:自己电脑上git客户端
远端仓库:管理员端的git服务端
多人协作:文件开源,可以多个人一起修改

前提

1.一个仓库

2.确认git有没有安装

在这里插入图片描述

3.把远端仓库clone

在这里插入图片描述
这一步执行完后我们执行ll可以看到:
在这里插入图片描述
这就是我们的远端仓库,cd命令进入这个仓库,以下的.git文件就是我们的本地仓库
在这里插入图片描述
我们拿上级目录测试一下
在这里插入图片描述
但即使是这样我们的文件夹也没有被本地仓库管理起来,所以我们还要执行两条指令,一个是让本地仓库管理,一个是添加日志文件,这里注意,在添加空文件夹的时候会有提醒,要提交修改完的文件的时候,也可以使用git add进行本地仓库文件的修改,比如说你原本有10行代码提交到本地仓库了,你在第二天修改多了五行代码,git add提交并不会完全替换文件,把十五行代码全部拷贝上去,而是提交新增的那五行代码
在这里插入图片描述
接下来就是推送到远端,输入gitee的账号密码即可推送
这里有一个问题,就是你只写git add这一个命令的时候,他其实并没有推送的,被存放在工作区
在这里插入图片描述
必须要加上git commit -m “xxxx”,才能成功推送,可以通过以下这个指令查看当前状态
在这里插入图片描述
如果还没应用git push会出现这一行
在这里插入图片描述

在这里插入图片描述
如果要查看提交记录:
在这里插入图片描述
在这里插入图片描述

4.gitignore

这个文件可以忽略包含后缀的文件,当我们在创建相关文件的时候,想要git add .,你会发现提交完的文件里面是没有包括这些后缀的,以下是我们如何修改的过程,如果没有这一个过程,只是单纯的vim这个文件并保存,其实是不会修改成功的,还是要像其他文件一样提交并推送
在这里插入图片描述

Linux调试器gdb

查看可执行程序二进制构成

在这里插入图片描述
可以发现gcc编译里是没有debug信息的,如果要在程序里添加debug,需要带-g选项
在这里插入图片描述
可以得到
在这里插入图片描述

gdb调试

进入gdb调试
在这里插入图片描述

list

在vs调试的时候有图形化界面,我们可以看到代码,但我们所用的linux是没有图形化界面的,所以我们可以通过list(可以简写为l)这个工具来看我们的代码,但我们可以看见这个代码顺序并不是我们平时看到的顺序
在这里插入图片描述
所以我们可以带上数字,或者直接回车,gdb会自动显示接下来的代码
在这里插入图片描述
l后面还可以跟函数名
在这里插入图片描述

run(简写为r)

表示运行程序,如果没有设置断点的话就没有停下来,相当于vs里的F5
在这里插入图片描述

breakpoint(简写为b)

表示断点,后接行号/函数名,也可以在文件外进行打断点,可接行号或者函数名
在这里插入图片描述

在这里插入图片描述
但如果只是单纯的打断点我们是看不见文件中的断点信息的,所以我们还要用info b来看断点信息
在这里插入图片描述
如果要删除断点的话,可以用delete breakpoint(简写为d),不能用行号来删,而只能通过断点的编号删除
在这里插入图片描述
如果我们在调试的时候突然退出再进来,我们会发现我们设的断点都消失了
在这里插入图片描述
打完断点后用run就可以跑起来了
在这里插入图片描述

逐过程调试n

使用next(n),然后继续回车,直到程序正常退出,但打的断点还在
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

逐语句调试s

在这里插入图片描述
但这会有一个问题,就是我们会陷入循环当中
在这里插入图片描述
我们可以用until 编号结束循环,直到我们需要到达的代码行
在这里插入图片描述
如果我们已经进入一个函数,想让一个函数直接跑完,可以用finish
在这里插入图片描述
如果我们已经进入了断点1,需要直接到第二个断点,可以用c(continue)
在这里插入图片描述
如果不想让断点工作,又不想删除断点,那就要对断点使能,enable和disable
在这里插入图片描述

监视窗口p

p

在这里插入图片描述

display常显示

当我们在执行调试的时候想让一个信息常显示,可以用display 信息
在这里插入图片描述
如果想取消的时候,可以用undisplay+监视编号
在这里插入图片描述

set var修改变量

可以修改变量的值

bt查看当前调用栈

这个指令可以查看在调用各级函数的时候的调用链及其参数情况
在这里插入图片描述

查看当前函数的私有变量info locals

查看局部变量
在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到