版本控制器git--gdb/cgdb

一.如何理解版本控制-->Git&&gitee||github

就是c语言的多版本,来应对甲方的多种要求.version1,version2,ect.

新建仓库:本质就是文件,储存多个程序员的程序的多个版本。

主要作用包括:

  1. 版本管理:记录文件的每一次修改,可随时回溯到历史任意版本,方便查看变更轨迹和恢复误操作。

  2. 协作开发:支持多人同时开发同一个项目,能高效合并不同开发者的代码,解决代码冲突。

  3. 分支管理:可以创建多个独立的开发分支,在分支上进行新功能开发或 bug 修复,不影响主分支,完成后再合并,保证代码稳定性。

  4. 备份与同步:通过远程仓库(如 GitHub、GitLab)实现代码备份,开发者可在不同设备上同步项目进度。

  5. 追踪责任:记录每次修改的作者、时间和说明,便于追踪问题来源和责任划分。

getee||gethub是基于git的网站和平台

二.Git如何操作

git的安装:使用git就要先安装git

复制代码
sudo apt update
sudo apt install git

sudo yum install git

检查git版本

复制代码
git --version

Git的基础命令:

1.克隆仓库

1.1.复制仓库的地址:

1.2 git clone (远端仓库的地址)

2.暂存文件(本地) git add <文件名>

3.提交文件(本地) git commit -m "提交说明"

4.拉取远程代码(远端仓库的文件可能已经被其他程序员修改了,需要同步文件,不然就会冲突)

5.推送代码到远程 git push

下面展示一个完整的流程:

三.调试器-gdb/cgdb使用

Linux下我们编译好的代码,无法直接调试

gcc/g++默认的工作模式是release模式,耳程序要调试就必须是debug模式!

-g选项,让最后形成的可执行程序,添加调试信息 ---debug模式!

1.快速认识gdb

2.gdb命令的学习(cgdb里面的命令和gdb完全相同,很多是英文的缩写,我们下面都是讲述cgdb里面的命令)

3.解决一下gdb难用的问题,三个debug调试技巧

cgdb和gdb命令是一样的,但是cgdb做了一些可视化操作,让我们调试更加方便,下面就按cgdb的命令来讲.

首先我们需要安装

3.1先生成可执行文件(添加-g选项变成debug模式)

3.2用cgdb打开可执行文件mycode

通过这些操作就可以同时看到代码和调试信息,比gdb更加方便(就是进行了一点可视化,调试代码更加简单)

3.3cgdb的基本命令

3.3.1 b+行号(函数) 在指定行增加断点,函数。

3.3.2 d+断点编号 删除指定编号的断点(不是删除指定行的断点)

3.3.3 info b 查看断点信息(里面会显示断点的编号等信息)

gdb不退出,断点编号是依次递增的。

3.3.4 r(run) 启动程序

3.3.5 n(next) 逐过程(不进入函数)

3.3.6 s(step) 逐语句(进入函数),gdb会自动记录最新的一条指令,可以回车来执行最近的一条指令

3.3.7 quit 退出

3.3.8 bt 打印当前程序的函数调用栈

3.3.9 finish 执行到当前函数的结尾

3.3.10 until 执行完循环函数停止()

3.3.11 disable+行号 使得断点暂时无效

enable+断点编号 使断点有效

3.3.11 c(continue) 从一个断点运行到另一个断点(把代码进行区域划分,以块为单位进行错误的快速的定位,VS里面是F5)

3.3.12 p+变量(表达式) 临时查看变量(表达式)的值

3.3.13 display+变量(等) 就是监视窗口,监视变量地址等。

Undisplay+变量前的编号(等) 在监视窗口减去变量等

3.3.14 infor locals 查看整个函数的临时变量

下面是一些调试技巧:

1.watch+变量 当变量被修改时,就会触发断点,提示你值已经发生改变。比如const修饰的值就可以用watch来监视问题

2.set var

3.条件断点 b 行号 if 条件(i==100)

追加条件 condition 断点编号 条件

Cgdb按ESC进入代码页面,按i进入Cgdb页面.

相关推荐
切糕师学AI4 分钟前
GDB: GNU 调试器
服务器·gnu
JiMoKuangXiangQu8 分钟前
Linux eBPF 错误:invalid bpf_context access
linux·ebpf
慧一居士14 分钟前
ubuntu和centos区别对比,使用方式区别对比及示例
运维
johnny_hhh16 分钟前
Confluent 单节点部署配置
运维·阿里云·zookeeper·kafka·centos·数据可视化
kaoa00020 分钟前
Linux入门攻坚——61、tomcat负载均衡集群-LB Cluster
linux·tomcat·负载均衡
洋葱 ☠20 分钟前
极简部署linux免费ssl证书Let‘s Encrypt,自动续签,nginx/apache都可以,域名指向服务器即可,无需项目
linux·nginx·ssl
星哥说事23 分钟前
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台
运维·服务器·docker
西门吹牛24 分钟前
openwrt学习笔记
linux·笔记·学习
Mike_66634 分钟前
Linux (Ubuntu) Jetson AArch64 架构 JetPack6.2 CUDA+CUDNN+PyTorch 安装踩坑经历
linux·pytorch·ubuntu
cly138 分钟前
Jenkins CI/CD 平台详解
运维·ci/cd·jenkins