版本控制器git和调试器gdb

1.版本控制器Git

  • 我们在编写各种⽂档时,为了防⽌⽂档丢失,更改 失误,失误后能恢复到原来的版本,不得不复制出⼀个副本,⽐如: "报告-v1"、 "报告-v2"
  • 每个版本有各⾃的内容,但最终会只有⼀份报告需要被我们使⽤。但在此之前的⼯作都需要这些不同版本的报告,于是每次都是复制粘贴副本,产出的⽂件就越来越 多,⽂件多不是问题,问题是:随着版本数量的不断增多,你还记得这些版本各⾃都是修改了什么吗?
  • ⽂档如此,我们写的项⽬代码,也是存在这个问题的!!

1.1版本控制器

  • 为了能够更⽅便我们管理这些不同版本的⽂件,便有了版本控制器。所谓的版本控制器,就是能让你 了解到⼀个⽂件的历史,以及它的发展过程的系统。通俗的讲就是⼀个可以记录⼯程的每⼀次改动和 版本迭代的⼀个管理系统,同时也⽅便多⼈协同作业。
  • ⽬前最主流的版本控制器就是Git。Git可以控制电脑上所有格式的⽂件,例如doc、excel、dwg、 dgn、rvt等等。对于我们开发⼈员来说,Git最重要的就是可以帮助我们管理软件开发项⽬中的源代码⽂件!

1.2安装git

yum install git

1.3git相关命令

  • git clone 仓库的http链接:下载项⽬到本地
  • git add ./*/文件名:将代码放到刚才下载好的⽬录中
  • git commit -m ".....":提交改动到本地,-m表示添加日志信息
  • git push:同步到远端服务器上
  • git pull:将本地仓库与远端仓库同步(不会改变本地仓库代码)
  • git status:查看暂存区内文件
  • git log:查看Git提交历史

1.4克隆仓库文件组成

  • .git:Git仓库的核心目录,相当于Git的"数据库"(包括提交历史、分支、标签、远程仓库地址、配置等)
  • .gitee:Gitee 平台识别的专属配置目录,用于存放和 Gitee 平台功能相关的配置文件,这些配置只会作用于当前仓库在 Gitee 上的展示或行为,和 Git 版本控制本身(.git)没有任何关系。
  • 简单来说:.git 管 "版本控制",.gitee 管 "Gitee 平台的个性化配置"。
  • .gitignore:需要忽略的特定后缀的文件列表。如果.txt、.sh等,因为git版本管理,只进行管理源文件。
  • README.md:说明书
  • README.en.md:英文说明书

2.调试器-gdb/cgdb使⽤

  • 程序的发布⽅式有两种, debug 模式和 release 模式, Linux gcc/g++ 出来的⼆进制程序,默认是 release 模式,无法进行调试。
  • 要使⽤gdb调试,必须在源代码⽣成⼆进制程序的时候,加上 -g 选项,如果没有添加,程序⽆法被编译
  • 推荐的调试器有gdb和cgdb,cgdb上半部分显示代码,下半部分显示gdb调试信息。

2.1cgdb的安装

sudo yum install -y cgdb

2.2cgdb常见使用

  • 开始: gdb binFile
  • 退出: ctrl + d 或 quit 调试命令
  • continue/c:相当于F5,一直执行,直到结束或者遇到断点
  • finish:将当前函数执行完
  • display:跟踪打印指定变量的值,相当于监视窗口
  • info local:打印当前函数内所有变量
  • set var:不改变实际代码内容
  • backtrace/bt:查看当前函数栈帧内正在调用的所有函数

Enb是标记断点的使能情况,比如断点被禁用就是n

2.3cgdb的三个特殊指令

  • watch 变量:执⾏时监视⼀个表达式(如变量)的值。如果监视的表达式在程序运⾏期间的值发⽣变化,GDB会暂停程序的执⾏,并通知使⽤者
  • set var 变量=...:改变指定变量的值。用于确定问题原因,更改⼀下标志位,假设我们想得到 +-result
  • 条件断点:break/b 行号 if 条件(给断点添加条件,满足条件时触发断点)
相关推荐
-大头.4 小时前
GIT教程系列(共3篇)---------第一篇:Git入门与核心概念完全指南
大数据·git·elasticsearch
_Xiaosz7 小时前
Git 拉取子模块报错 Permission denied (publickey) 的排查与解决
git
晚霞的不甘7 小时前
Flutter for OpenHarmony 实战:[开发环境搭建与项目编译指南]
git·flutter·react native·react.js·elasticsearch·visual studio code
-大头.7 小时前
GIT教程系列(共3篇)-----第三篇:Git高级技巧与专业配置完全指南
大数据·git·elasticsearch
查拉图斯特拉面条7 小时前
Git推送完全指南:从首次推送到冲突解决
大数据·git·elasticsearch
脸大是真的好~7 小时前
Git的快速使用
git
沛沛老爹7 小时前
从Web到AI:金融/医疗/教育行业专属Skills生态系统设计实战
java·前端·人工智能·git·金融·架构
夜流冰7 小时前
Git - 学习掌握Git的建议
git·学习
小鸡脚来咯18 小时前
Git 新手入门指南
大数据·git·elasticsearch