版本控制器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页面.

相关推荐
Selicens13 小时前
git批量删除本地多余分支
前端·git·后端
甲鱼92913 小时前
MySQL 实战手记:日志管理与主从复制搭建全指南
运维
Johny_Zhao1 天前
OpenClaw安装部署教程
linux·人工智能·ai·云计算·系统运维·openclaw
闲云一鹤2 天前
Git LFS 扫盲教程 - 你不会还在用 Git 管理大文件吧?
前端·git·前端工程化
YuMiao2 天前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
chlk1233 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑3 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件3 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
碳基沙盒3 天前
OpenClaw 多 Agent 配置实战指南
运维
深紫色的三北六号3 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移