【Linux】git和gdb

下面还有两个Linux中会用到的工具,一个是给git,可以叫版本控制器,就是对我们写的代码进行版本控制

一个是gdb,就是我们C语言/C++的代码调试工具

下面我们分别来介绍一下

git

git和Linux一样,也是一个开源项目,就是当初Linux的创始人林纳斯·托瓦兹创建的。git是一个开源的工具,那么他和gitee和github之间有什么关系呢?其实gitee和github只是一个网站,这个网站的底层用的还是给git,它不过是把底层git的信息显示到网站上,来满足人们的需求

那我们如何在gitee或github上建立远端仓库并且跟本地的仓库联系起来呢?我们以gitee为例

我们先在gitee网站上新建仓库

点击克隆

找到https的链接复制下来,然后到我们的Linux中输入

这样就把我们的远端仓库克隆到本地了,第一次克隆需要输入用户名邮箱的信息,在命令行中输入这个就行

下面是我们如何提交本地git和同步到远端git

我们克隆远端仓库到本地后本地就多了一个文件夹

我们要提交到本地git要首先把文件拷贝进这个文件夹

之后我们进入linuxcode这个文件夹,可以看到我们拷贝进来的文件

之后输入下面的指令

这样就提交到本地git了,如果像同步到远端,要进行git push命令

之后它会要求我们输入gitee的邮箱和密码,输完之后我们的远端git就更新了 

上面是我们简单的一些操作,就负责提交本地和远端,下面还有几个命令帮助我们更好的学习git

git log可以查看历史提交记录

用了这个命令,那么你之前所有的提交信息都会显示出来

git status 看看还有没有什么文件可以提交的,查看状态

我们可以直接在linuxcode这个目录下删除我们拷贝进来的文件,因为删除操作也属于一种修改,所以删除后也可以commit和push

git pull 当我们多人合作时,每个人都会提交代码到远端,当远端的代码比我们本地的代码版本要新时,我们就必须先更新我们本地git的代码,就是pull拉取到本地,之后再push推送到远端

我们其实可以看到linuxcode这个目录下还有一些隐藏文件

其中.git这个文件中存放的就是我们的修改信息

.gitignore这个文件中放的是一些后缀,表示有这些后缀的文件就不要提交了,并且在我们改这个文件后,它也是即时生效的

gdb

下面我们说一下gdb,它是一个调试代码的工具,我们知道发布软件有两种方式,一种叫debug一种叫release,只有在debug版本下才可以调试,gcc默认是生成release版本,所以我们在gcc命令下要加一个-g来表示要生成debug版本,就像这样

debug版本下可以调试就是因为这个版本下的可执行程序加了调试信息,它占的空间也是比较大的,我们也可以对比一下

我们也可以通过下面的指令看到多的内容

上面是一些基本的知识,下面是gdb的一些常用的指令用于我们的调试

第一个是进入调试,quit是退出调试

l + 行号是显示指定行附近的代码

b是breakpoint,意思是打断点

比如

b 10在第十行打断点

b Sum在这个Sum函数的第一行打断点

b add.c:7指定文件和行号打断点

info b查看所有打过的断点

我们在打完断点后用info b可以看到

最前边一行就是每个断点的编号,我们如果想删除断点也需要通过编号来删除

d就是delete

d 2就是删除第二个断点

r就是run,直接执行完程序

enable/disable+断点编号  就是开启关闭断点

n是我们的逐过程调试,就是VS中的F10,不进入函数

s是逐语句调试,就是F11,进入函数

p+变量或地址 可以显示具体的内容

display +变量或地址可以常显示,这个也是有编号的

undisplay+编号可以去常显示

c可以使程序从上一个断点直接到下一个断点

bt可以查看调用堆栈

finish 是将一个函数运行结束就停下来

until+行号 是在某一范围内直接运行到指定行

set var可以修改一个变量的内容,比如:

我们这个指令的用处一般是给条件语句用的,一般不会执行到的条件语句我们可以赋值来执行到那,来判断我们的代码是否有误

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/576294.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

高频 LC、压控及晶体振荡器

实验名称 高频 LC、压控及晶体振荡器 一、实验目的 1. 正确地使用数字频率计测试频率。 2. 了解电源电压,负载及温度等对振荡须率的影响,从而加深理解为提高频率稳定度应采取的措施。 二、实验原理- 组成一个振荡器能否…

深度学习知识点:循环神经网络(RNN)、长短期记忆网络(LSTM)、门控循环单元(GRU)

深度学习知识点:循环神经网络(RNN)、长短期记忆网络(LSTM)、门控循环单元(GRU) 前言循环神经网络(RNN)RNNs(循环神经网络)训练和传统ANN&#xff…

Golang操作Redis

一. Redis介绍 1.1 简介 Redis是完全开源免费的,遵循BSD协议,是一个高性能的key-value数据库。 Redis与其它的key-value缓存产品有以下三个特点: Redis支持数据持久化,可以见内存中的数据报错在磁盘中,重启的时候可以…

从Kafka的可靠性设计体验软件设计之美

目录 1. Kafka可靠性概述 2. 副本剖析 2.1 什么是副本 2.2 副本失效场景 2.3 数据丢失场景 2.4 解决数据丢失方案 3. 日志同步机制 4. 可靠性分析 1. Kafka可靠性概述 Kafka 中采用了多副本的机制,这是大多数分布式系统中惯用的手法,以此来实现水平扩…

webpack热更新原理详解

文章目录 前言基础配置创建项目HMR配置 HMR交互概览HMR流程概述HMR实现细节初始化注册监听编译完成事件启动服务监听文件代码变化服务端发送消息客户端收到消息热更新文件请求热更新代码替换 问题思考 前言 刷新分为两种:一种是页面刷新,不保留页面状态…

品鉴中的文化传承:如何理解红酒在历史与文化中的地位

红酒不仅是产品,更是一种文化和历史的传承。在品鉴雷盛红酒的过程中,了解红酒背后的历史和文化,能够更好地理解其风格和特点,提升品鉴体验。 红酒的历史可以追溯到公元前6000年左右的古埃及时期。自那时起,红酒就成为了…

新手Pytorch入门笔记-transforms.Compose()

我使用的图片是上图,直接下载即可 transforms.Compose 是PyTorch中的一个实用工具,用于创建一个包含多个数据变换操作的变换对象。这些变换操作通常用于数据预处理,例如图像数据的缩放、裁剪、旋转等。使用transforms.Compose 可以将多个数据…

Linux系统编程---线程同步

一、同步概念 同步即协同步调,按预定的先后次序运行。 协同步调,对公共区域数据【按序】访问,防止数据混乱,产生与时间有关的错误。 数据混乱的原因: 资源共享(独享资源则不会)调度随机(意味着数据访问会出现竞争)线…

监控员工上网用什么软件比较好 八款电脑监控神器送给你

监控员工上网用什么软件比较好 八款电脑监控神器送给你 监控员工上网行为的软件有多种,每款软件都有其独特的功能和优势。现在让我们一起来探寻最佳员工上网监控神器! 想知道哪款电脑监控软件最炫酷、最实用吗?来看看这里,为你揭…

36.WEB渗透测试-信息收集-企业信息收集(3)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:35.WEB渗透测试-信息收集-企业信息收集(2) 重要信息收集&#xf…

Python 中的递归排列

在 Python 中使用递归计算排列,适合绝对初学者 介绍 有些人发现很难理解递归算法。 这个技巧向绝对初学者展示了如何使用递归查找排列。Python 背景 这个技巧的想法来自一个问答问题:可怜的 OP 花了三天时间“翻头”,试图弄清楚一小段代码如何能够生成输入列表项的所有排列。…

ROS_第一个程序_Hello_world

ROS的第一个项目:输出Hello World 我们将学习如何创建一个简单的ROS(Robot Operating System)项目,该项目将在终端中输出"Hello World"。我们将使用Python语言进行编程。 环境准备 首先,确保你的计算机已…

【目标检测】基于深度学习的布匹表面缺陷检测(yolov5算法,4类,附代码和数据集)

写在前面: 首先感谢兄弟们的关注和订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。(专栏订阅用户订阅专栏后免费提供数据集和源码一份,超级VIP用户不在服务范围之内) 路虽远,行则将至;事虽难,做…

硬件24、嘉立创EDA丝印的优化和调整

1、调整全部丝印的属性 先选中一个丝印,然后右键点击它,选择查找,然后选择查找全部 选择查找全部这个时候可以设置所有丝印在元件的位置了,布局-》属性位置,位号,属性位置设置为上边,这时丝印就…

全志ARM-网络链接

命令扫描周围的WIFI热点 nmcli dev wifi 命令接入网络 nmcli dev wifi connect (WiFi名,不要有空格)password (WiFi密码) 查看IP地址 ip addr show wlan0或ifconfig 出现successfully就连接成功了

计应2班01

public class Demo {public void sum(double num1 , double num2){System.out.println(num1 num2);} }import org.junit.Test;public class Test1 { // 定义方法 // test sum // testSum // public void // TestTestpublic void testSum(){Demo de…

如何通过文件下发平台,让数据发挥其真正的价值?

银行网点文件下发平台是专门设计用于银行系统内部或与外部机构之间安全、高效地传输和分发文件的系统。目前使用较多的方式是FTP、邮件、物理媒介等,但都存在一定问题: 1、物理媒介:如U盘、光盘等,通过快递服务发送给分支机构&…

面向对象设计与分析(42)工厂方法模式

文章目录 定义示例实际应用 定义 工厂方法模式,定义一个用于创建对象的接口(工厂方法),返回对象基类,让子类去实现该接口,从而返回具体的子类对象。 结构 工厂方法模式包含以下主要角色: 抽象…

观成科技:蔓灵花组织加密通信研究分析总结

1.概述 蔓灵花,又名"Bitter",常对南亚周边及孟加拉湾海域的相关国家发起网络攻击,主要针对巴基斯坦和中国两国。其攻击目标主要包括政府部门、核工业、能源、国防、军工、船舶工业、航空工业以及海运等行业,其主要意图…

【学习笔记】Python 使用 matplotlib 画图

文章目录 安装中文显示折线图、点线图柱状图、堆积柱状图坐标轴断点参考资料 本文将介绍如何使用 Python 的 matplotlib 库画图,记录一些常用的画图 demo 代码 安装 # 建议先切换到虚拟环境中 pip install matplotlib中文显示 新版的 matplotlib 已经支持字体回退…
最新文章