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

相关推荐
盒子69101 小时前
图生图大模型对于各种复杂的图片如何做负载均衡呢?
运维·负载均衡
2401_834636993 小时前
Linux 负载均衡全实战:Nginx+HAProxy+LVS 从原理到落地
linux·nginx·负载均衡
鹏大师运维8 小时前
为什么信创电脑装软件总提示“软件包架构不匹配”?
linux·运维·架构·国产化·麒麟·deb·统信uos
007张三丰9 小时前
软件测试专栏(11/20):测试框架开发:pytest深度解析与插件体系
运维·服务器·自动化测试·pytest·测试框架
weixin_6042366710 小时前
华三 路由器 极简核心配置
运维·服务器·网络·h3c·h3c路由器
恋喵大鲤鱼10 小时前
git rebase
git·git rebase
鹤落晴春10 小时前
【Linux复习】管理SELinux安全性
linux·运维·服务器
yz_aiks10 小时前
Linux Jar包配置Systemd自启动实战:从排查到配置全流程
linux·python·jar·自启动·systemd
AI智图坊10 小时前
多件装组合SKU图的批量生产效率分析:从PS手工到AI自动化的工作流改造
大数据·运维·人工智能·gpt·ai作画·自动化·aigc
bjzhang7512 小时前
CentOS下安装MySQL详解
linux·mysql·centos