版本控制器Git和gdb

embedded/2025/3/6 17:42:21/

一.版本控制器Git

1.版本控制简单来讲可以对每一份代码版本进行复制保存,保证每一版代码都可查

2.仓库的本质也是一个文件夹

3.git既是一个客户端,也是一个服务器,是一个版本控制器。而gitee和GitHub都是基于git的网站或平台

4.git的基本操作

git clone 仓库网址:将远端仓库添加到本地        .git是隐藏的本地仓库

git add 文件名/.:将指定文件/所有文件添加到仓库里(注意:此时只是添加到了临时的暂存区)

git status:查看当前状态

git log:查看工作日志

git commit:将文件添加到仓库,但是会被拒绝,此时应该采用git commit -m "xxx":写下备注再添加到仓库里

git push :将文件提交/同步到远端仓库里

注:在Linux和Windows都可以向远端添加文件,若是一方已经对文件进行修改并提交,另一方提交时会报错,因为远端仓库里最新的文件没有同步到现在另一方的文件中(因为文件是同一份),此时需要用户根据提示进行操作先同步再提交

5.细节问题

<1>git提交时只会提交变化的部分

<2>git --version可以查看系统内是否安装git,apt install -y git可以进行git安装

<3>git的版本管理只会进行管理源文件

<4>.gitignore可对上传的文件进行过滤(按照特定后缀进行忽略)

<5>git pull:将远端仓库和本地仓库同步,用于处理在你之前有人已提交过已修改的文件的情况

<6>远端仓库相比较于任何一方来说都是最新的

二.gdb

前言:Linux下的程序是无法进行调试,因为gcc/g++默认是release模式,此时需要多加-g选项,调至debug模式,生成可执行程序再添加调试信息

1.gdb 可执行文件:进入调试模式(注意:此时代码区和调试区是不在一个界面的,不方便查看,可以使用cgdb)

2.gdb bin:打断点(注意:只要不退出gdb,断点编号会一直向下累加)

注:断点的本质是将代码进行区块划分,以块为单位快速定位区域

3.在Linux中next/n是逐过程进行调试,step/s是逐语句进行调试(补充:逐过程的话遇见函数调用不会进入函数内部,逐语句可以进入函数内部检查内部执行情况)

4.gdb的命令

b 行号/文件名:行号/文件名:函数  :在xx处打上断点

d 断点编号:删除特定编号的断点

info b:查看断点信息       

info locals:查看函数内部所有定义的临时变量(类似VS调试中的监视窗口)

r:运行程序

bt:查看当前函数调用的栈帧

diable  断点编号:关闭特定编号的断点(区别删除)      enable 断点编号:打开特定编号的断点

finish:确认问题是否在函数内部

until:局部区域快速执行

display :查看上下文数据    undisplay xx:不想看xx内容

p 变量/表达式:查看变量/表达式

watch:执行监视某个变量/表达式的值

set var:确定问题的原因

condition 断点编号 条件:给特定编号断点处的语句添加执行条件


http://www.ppmy.cn/embedded/170531.html

相关文章

Centos 7.9内核升级

手动内核从3.10升级到5.15 从https://dl.lamp.sh/kernel/el7/下载两个包 安装主内核包 sudo rpm -ivh kernel-ml-5.15.148-1.el7.elrepo.x86_64.rpm 安装开发包&#xff08;编译 eBPF 必需&#xff09; sudo rpm -ivh kernel-ml-devel-5.15.148-1.el7.elrepo.x86_64.rpm …

23种设计模式之《模板方法模式(Template Method)》在c#中的应用及理解

程序设计中的主要设计模式通常分为三大类&#xff0c;共23种&#xff1a; 1. 创建型模式&#xff08;Creational Patterns&#xff09; 单例模式&#xff08;Singleton&#xff09;&#xff1a;确保一个类只有一个实例&#xff0c;并提供全局访问点。 工厂方法模式&#xff0…

【漫话机器学习系列】119.小批量随机梯度方法

1. 引言 在机器学习和深度学习中&#xff0c;梯度下降&#xff08;Gradient Descent&#xff09;是一种常见的优化算法&#xff0c;用于调整模型参数以最小化损失函数。然而&#xff0c;在处理大规模数据集时&#xff0c;使用传统的梯度下降&#xff08;GD&#xff09;可能会面…

LangChain-08 Query SQL DB 通过GPT自动查询SQL

我们需要下载一个 LangChain 官方提供的本地小数据库。 安装依赖 SQL: https://raw.githubusercontent.com/lerocha/chinook-database/master/ChinookDatabase/DataSources/Chinook_Sqlite.sql Shell: pip install --upgrade --quiet langchain-core langchain-community la…

[内网安全] Windows 本地认证 — NTLM 哈希和 LM 哈希

关注这个专栏的其他相关笔记&#xff1a;[内网安全] 内网渗透 - 学习手册-CSDN博客 0x01&#xff1a;SAM 文件 & Windows 本地认证流程 0x0101&#xff1a;SAM 文件简介 Windows 本地账户的登录密码是存储在系统本地的 SAM 文件中的&#xff0c;在登录 Windows 的时候&am…

GCC RISCV 后端 -- cc1 入口

GCC编译工具链中的 gcc 可执行程序&#xff0c;实际上是个驱动程序&#xff08;Driver&#xff09;&#xff0c;其根据输入的参数&#xff0c;然后调用其它不同的程序&#xff0c;对输入文件进行处理&#xff0c;包括编译、链接等。可以通过以下命令查看&#xff1a; gcc -v h…

UV安装GPU版本PyTorch

经过同事推荐&#xff0c;开始尝试使用uv管理Python环境&#xff0c;效果相当不错。 安装PyTorch遇到的问题 但在安装PyTorch时&#xff0c;采用默认的uv add方式会报错&#xff0c;而使用uv pip install安装PyTorch的cuda版本&#xff0c;虽然没有问题&#xff0c;但并不能同…

C++(蓝桥杯常考点)

前言&#xff1a;这个是针对于蓝桥杯竞赛常考的C内容&#xff0c;容器这些等下棋期再讲 C 在DEVC中注释和取消注释的方法&#xff1a;ctrl/ ASCII值&#xff08;常用的&#xff09;&#xff1a; A-Z:65-90 a-z:97-122 0-9:48-57 换行/n:10科学计数法&#xff1a;eg&#xff1a…