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

相关推荐
阿里云大数据AI技术5 小时前
阿里云 EMR AI 助手正式发布:从问答工具到全栈智能运维助手
运维·人工智能
kyriewen6 小时前
别再每次都 Google 了:我整理了前端日常最常踩的 10 个 Git 坑,附速查表
前端·javascript·git
你好潘先生11 小时前
别再记命令了,用 yeero do 说句人话就能跑脚本,而且不烧 token
服务器·python·命令行
orion571 天前
Missing Semester Class1:course overview and introduction of shell
linux
SkyWalking中文站1 天前
认识 Horizon UI · 6/17:Trace 探索器
运维·监控·自动化运维
用户120487221611 天前
Linux驱动编译与加载
linux·嵌入式
程序员老赵1 天前
服务器文件不想 SFTP 上传?Docker 跑个 File Browser,浏览器就能管理
服务器·docker·开源
火车叼位1 天前
写给初级开发者:SSL、SSH、HTTPS 与证书体系全解析
运维
vivo互联网技术1 天前
从 10 分钟到 1 秒:ES 深度分页任意跳页的三轮优化实战
服务器·数据库·redis·elasticsearch·深度分页