Linux系统编程学习 NO.9——git、gdb

前言

本篇文章简单介绍了Linux操作系统中两个实用的开发工具git版本控制器和gdb调试器。

git

什么是git?

git是一款开源的分布式版本控制软件。它不仅具有网络功能,还是服务端与客户端一体的软件。它可以高效的处理程序项目中的版本管理。它是Linux内核的设计者Linus Torvalds为了帮助管理Linux内核开发和维护而开发的一个开放源码的版本控制软件。

如何使用git

这里我们推荐使用国内基于git,为用户提供远端代码仓库服务的网站gitee。然后手把手教你管理自己对应的本地仓库以及远端仓库。

第一步,你得注册并登录你的gitee网站的账户,在你的网页右上角有一个“+”号,点击里面的新建仓库。
在这里插入图片描述
第二步,创建远端仓库
在这里插入图片描述
第三步,将远端仓库克隆到本地仓库。首先现将远端仓库的链接拷贝下来。
在这里插入图片描述
然后打开本地环境
在终端bash命令行输入以下指令
在这里插入图片描述

git --version

如果显示出了对应的版本,则请看下一步。若显示未找到指令,则表示git还未安装。所以需要安装git。在bash命令行中输入下面指令安装git

sudo yum install -y git

当你看到本行是文字时,相信你的git也在你的本地环境已经安装,下面我们将远端仓库克隆到本地环境里,形成本地仓库。如果你是第一次安装git也会要求你提供你的身份信息,这是为了对代码进行溯源。具体提交身份信息的指令简单提供一下demo版本的。

git config --global user.email "你的email"
git config --global user.name "你的姓名"
git clone 你的远端仓库URL

在这里插入图片描述
第四步,提交本地仓库代码到远端仓库。需要用到三板斧进行相应的提交。

git add .
git commit -m "提交内容描述" 
git push

git add .命令是将你当前的目录下的文件提交到暂存区中。git commit -m 命令是将暂存区的文件提交到本地仓库中,并要求写上你在本次提交中做了什么?git push命令是将当前本地仓库的内容同步到远端仓库中。在初学时不建议通过配置文件省略用户名密码确认。

在这里插入图片描述
在这里插入图片描述

第五步,远端仓库对于本地仓库的管理。当我们需要删除或者调整代码仓库的结构时,需要在远端仓库进行相应的调整操作后,然后在本地环境中将远端仓库的操作后内容拷贝到本地仓库中。需要用到同步远端仓库内容与本地仓库内容的指令。

git pull

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以通过下面指令查看当前日志信息

git log

在这里插入图片描述
可以使用下面指令查看当前git的状态

git status

在这里插入图片描述

gdb

什么是gdb?

gdb是一款开源的源代码调试器。用于Linux环境下,C、C++、Python等编程语言的错误调试。gdb只能在debug版本下起作用,release版本是无法调试的。因为release版本对应目标的是用户,用户可不会去调试。

gdb的使用

在这里插入图片描述
这里可以看到gcc环境下默认是以release版本发布程序,如果我希望我的程序是以debug版本发布呢? 这就要使用gcc的-g选项。
在这里插入图片描述
这里可以看到debug版本程序的容量是要略大于release版本的。因为debug程序内部携带了调试信息。下面简单介绍两个gdb指令,l和q。l表示默认显示当前程序的前10代码,可以按回车换行符继续输出代码,也可以指定对应的行号显示代码。q表示退出gdb。
在这里插入图片描述
在这里插入图片描述

下面在正式介绍调试前先给大家看一下样例的源文件的代码
在这里插入图片描述
在gdb中输入r表示在gdb直接跑完当前的源代码。

在这里插入图片描述
我相信大家如果使用vs系列类似的图形化界面调试器,对断点一定不会陌生。那么在gdb下不和定义断点,如何查看断点,如何移除断点呢?且看下面的样例。
在gdb中,b + 行号 = 将对应的行号添加为断点。
在这里插入图片描述
我们平时用的图形化界面的集成开发环境中,断点是在行号的左边展示出来的。而gdb并不会在代码内容中显示断点位置。它需要通过一个指令来查看当前调试器中所有的断点。

info b

在这里插入图片描述
在gdb中跑info b指令后,当前程序的所有断点以及它们的相关信息就都能展示给用户了。那如果我要删除断点呢?这就需要用 d + 断点编号进行断点的删除。
在这里插入图片描述
在调试期间退出gdb,你上一次调试的内容数据将会被清空。
在这里插入图片描述
s表示逐过程执行,n表示逐语句执行。
在这里插入图片描述
until n行,表示直接跳转到第n行。display 变量名可以输出该变量的内容。
在这里插入图片描述

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

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

相关文章

Flink(七)【输出算子(Sink)】

前言 今天是我写博客的第 200 篇,恍惚间两年过去了,现在已经是大三的学长了。仍然记得两年前第一次写博客的时候,当时学的应该是 Java 语言,菜的一批,写了就删,怕被人看到丢脸。当时就想着自己一年之后&…

WeTab--颜值与实力并存的浏览器插件

一.前言 现在的浏览器花花绿绿,有大量的广告与信息,令人目不暇接。有没有一款好用的浏览器插件可以解决这个问题呢?我愿称WeTab为版本答案。 WeTab的界面: 干净又整洁。最最关键的是还有智能AI供你服务。 这个WeTabAI就像chatgp…

Sam Altman 被罢免细节曝光,投资 100+ 公司或成「话柄」?

2022 年 11 月,ChatGPT 发布掀起 AI 狂潮。时隔 1 年,2023 年 11 月,ChatGPT 之父、Sam Altman 的一项人事巨变,再次掀起了一场 AI 界的风暴,只是这次并不是技术革命,而是 OpenAI 巨头换帅——Sam Altman 被…

高斯积分-Gaussian Quadrature

https://mathworld.wolfram.com/GaussianQuadrature.html

目标检测—YOLO系列(二 ) 全面解读复现YOLOv1 PyTorch

精读论文 前言 从这篇开始,我们将进入YOLO的学习。YOLO是目前比较流行的目标检测算法,速度快且结构简单,其他的目标检测算法如RCNN系列,以后有时间的话再介绍。 本文主要介绍的是YOLOV1,这是由以Joseph Redmon为首的…

Postman接收列表、数组参数@RequestParam List<String> ids

示例如下: 接口定义如下: GetMapping(value "/queryNewMoviePath")public List<Map<String, Object>> queryNewMoviePath(RequestParam List<String> ids ) {return service.queryNewMoviePath(ids);}postman中测试如下&#xff1a; http://loc…

linux、windows 查看java等进程占用资源情况

linux查看进程占用资源情况&#xff1a; top -o %MEM -b -n 1 | grep java | awk {print "PID: "$1" \t 虚拟内存: "$5" \t 物理内存: "$6" \t 共享内存: "$7" \t CPU使用率: "$9"% \t 内存使用率: "$10"%&…

剑指JUC原理-20.并发编程实践

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码&#x1f525;如果感觉博主的文章还不错的话&#xff0c;请&#x1f44d;三连支持&…

C/C++ 运用WMI接口查询系统信息

Windows Management Instrumentation&#xff08;WMI&#xff09;是一种用于管理和监视Windows操作系统的框架。它为开发人员、系统管理员和自动化工具提供了一种标准的接口&#xff0c;通过这个接口&#xff0c;可以获取有关计算机系统硬件、操作系统和应用程序的信息&#xf…

Maven依赖管理项目构建工具(保姆级教学---下篇)

对于Maven依赖管理项目构建工具的介绍&#xff0c;我们将其分为上篇和下篇。如果您对文章感兴趣&#xff0c;您可以在此链接中找到上篇详细内容&#xff1a; Maven依赖管理项目构建工具&#xff08;保姆级教学上篇&#xff09;-CSDN博客 一、Maven依赖传递和依赖冲突 1. …

SQL 文本函数

前言 SQL文本函数是SQL语言中非常有用的一类函数&#xff0c;它们用于处理和操作字符串数据。在实际应用中&#xff0c;我们经常需要对数据库中的文本数据进行各种操作&#xff0c;比如提取子串、替换子串、拼接字符串等等。而SQL文本函数可以帮助我们轻松地完成这些任务&#…

Egress Gateway

目录 文章目录 目录本节实战Egress Gateway访问外部服务1.Envoy 转发流量到外部服务2.控制对外部服务的访问3.直接访问外部服务总结 Egress 出口网关1.用 Egress gateway 发起 HTTP 请求2.用 Egress gateway 发起 HTTPS 请求 关于我最后 本节实战 实战名称&#x1f6a9; 实战&…

Scrum框架中的Sprint

上图就是sprint里要做的事。Sprint是scrum框架的核心&#xff0c;是所有的想法、主意转换为价值的地方。所有实现产品目标的必要工作都在sprint里完成&#xff0c;这些工作主要包括Sprint 计划&#xff08;Sprint planning&#xff09;、每日站会&#xff08;Daily Scrum&#…

JavaEE——简单认识HTML

文章目录 一、简单解释 HTML二、认识 HTML 的结构三、了解HTML中的相关标签1.注释标签2.标题标签3.段落标签 p4. 换行标签 br5.格式化标签6.图片标签解释 src解释 alt解释其他有关 img 标签的属性 7.超链接标签 a8.表格标签9.列表标签10.input 标签11. select 下拉菜单以及 div…

大数据研发工程师课前环境搭建

大数据研发工程师课前环境搭建 第一章 VMware Workstation 安装 在Windows的合适的目录来进行安装&#xff0c;如下图 1.1 双击打开 1.2 下一步&#xff0c;接受协议 1.3 选择安装位置 1.4 用户体验设置 1.5 快捷方式 已经准备好安装&#xff0c;点击安装 1.6 安装中 1.7 安装…

现在的各类解释非常混乱,到底什么是智慧城市?

智慧城市&#xff0c;简单来说&#xff0c;就是运用先进的信息和通信技术&#xff0c;让城市管理更加智能、高效&#xff0c;让市民的生活更加便捷、舒适。 在我们日常生活中&#xff0c;智慧城市带来的改变无处不在。 想象一下&#xff0c;当你早上醒来&#xff0c;你的手机已…

栈和队列的初始化,插入,删除,销毁。

目录 题外话 顺序表和链表优缺点以及特点 一.栈的特点 二. 栈的操作 2.1初始化 2.2 栈的销毁 2.3 栈的插入 2.3 输出top 2.4 栈的删除 2.5 输出栈 题外话 顺序表和链表优缺点以及特点 特点&#xff1a;顺序表&#xff0c;逻辑地址物理地址。可以任意访问&#xff0c…

2023年【四川省安全员A证】考试资料及四川省安全员A证考试试卷

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年四川省安全员A证考试资料为正在备考四川省安全员A证操作证的学员准备的理论考试专题&#xff0c;每个月更新的四川省安全员A证考试试卷祝您顺利通过四川省安全员A证考试。 1、【多选题】《建设工程安全生产管理…

英伟达AI布局的新动向:H200 GPU开启生成式AI的新纪元

英伟达Nvidia是全球领先的AI计算平台和GPU制造商&#xff0c;近年来一直在不断推出创新的AI产品和解决方案&#xff0c;为各行各业的AI应用提供强大的支持。 最近&#xff0c;英伟达在GTC 2023大会上发布了一款专为训练和部署生成式AI模型的图形处理单元&#xff08;GPU&#…