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

相关推荐
qq75903536622 分钟前
Docker快速部署一款堡垒机系统
运维·docker·容器
敢敢のwings28 分钟前
云服务器上部署Dify完整教程
运维·服务器
少年、潜行1 小时前
F1C100/200S学习笔记(1)-- 核心板和验证板硬件设计
linux·驱动开发·f1c200s
Rysxt_1 小时前
IDEA中Git隐藏更改(Stash)功能详解教程
数据库·git·intellij-idea·stash
东木君_1 小时前
Linux 驱动框架中 Class 机制完整讲解(以 ov13855 摄像头为例)
linux
yiSty1 小时前
linux命令行下使用百度云网盘【自用】
linux·运维·百度云
超绝振刀怪1 小时前
【Linux工具】环境基石:软件包管理器 yum 与 Vim 编辑器详解
linux·编辑器·vim
UVM_ERROR2 小时前
UVM实战:RDMA Host侧激励开发全流程问题排查与解决
服务器·网络·数据库
福尔摩斯张2 小时前
插件式架构:解耦与扩展的艺术与实践(超详细)
linux·服务器·网络·网络协议·tcp/ip
txzz88882 小时前
CentOS-Stream-10 搭建YUM源Web服务器
linux·运维·centos·yum源·linux系统更新·centos系统更新·自建web yum源