git的简单使用与gdb

news2024/12/26 12:43:23

版本控制器git

为了能够更方便管理这些不同版本的文件,有了版本控制器,可以了解一个文件的历史,以及它的发展过程的系统,通俗的说就是一个可以记录工程的每一次改动和版本迭代的一个管理系统,同时也方便多人协作。

三板斧

下载项目到本地

创建一个防置代码的目录

git clone 链接

1.git add

将代码放到下载好的目录中

git add 文件名

2.git commit

提交改动到本地(在协同时,别人改了,而你不知道的情况下也交了改动的,那么你会提交不了,得先同步别人改动的到你这里,然后才可以提交)

git commit -m “xxx”

3.git push

同步到远端服务器上

这时要输入gitee的用户名和密码,这里用户名是@的后面的。

代码示例:
 1.要进入到gitee的目录里面

root@iZbp1be068ksa92vuf0kbdZ:~/zym/c-small-pants# pwd
/root/zym/c-small-pants
root@iZbp1be068ksa92vuf0kbdZ:~/zym/c-small-pants# 

2.写好的代码

root@iZbp1be068ksa92vuf0kbdZ:~/zym/c-small-pants# touch mycode.c
root@iZbp1be068ksa92vuf0kbdZ:~/zym/c-small-pants# vim mycode.c
root@iZbp1be068ksa92vuf0kbdZ:~/zym/c-small-pants# 

3.git add

root@iZbp1be068ksa92vuf0kbdZ:~/zym/c-small-pants# git add mycode.c

4.git commit(加-m指定信息)

root@iZbp1be068ksa92vuf0kbdZ:~/zym/c-small-pants# git commit -m "测试用例"
[master fe43477] 测试用例
 1 file changed, 8 insertions(+)
 create mode 100644 mycode.c
root@iZbp1be068ksa92vuf0kbdZ:~/zym/c-small-pants#

5.git push

root@iZbp1be068ksa92vuf0kbdZ:~/zym/c-small-pants# git push
Username for 'https://gitee.com': zhong-iming
Password for 'https://zhong-iming@gitee.com': 
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 2 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 322 bytes | 322.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [1.1.5]
remote: Set trace flag 1e4a7eb8
To https://gitee.com/zhong-iming/c-small-pants.git
   e3b1905..fe43477  master -> master
root@iZbp1be068ksa92vuf0kbdZ:~/zym/c-small-pants# 

调试器-gdb/cgdb使用

程序发布方式有俩种,debug模式和release模式,Linux gcc/g++出来的二进制程序,默认是release模式

要使用gdb调试,必须在源代码生成二进制程序的时候,加上-g选项,说明是debug模式。

代码示例:

root@iZbp1be068ksa92vuf0kbdZ:~/zym/c-small-pants# gcc -o file file.c
root@iZbp1be068ksa92vuf0kbdZ:~/zym/c-small-pants# file file
file: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=cb0c2a14e62f02b1b4c61b83570301866fab50c1, for GNU/Linux 3.2.0, not stripped

//没加-g选项没有debug信息

root@iZbp1be068ksa92vuf0kbdZ:~/zym/c-small-pants# gcc -o file file.c -g
root@iZbp1be068ksa92vuf0kbdZ:~/zym/c-small-pants# file file
file: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=a3343bb6c7630505b89539a79e3f09727f627859, for GNU/Linux 3.2.0, with debug_info//有debug信息加了-g选项, not stripped
root@iZbp1be068ksa92vuf0kbdZ:~/zym/c-small-pants# 

常见使用

gdb 目标文件

ctrl+d或quit调试命令

代码演示:

r运行出结果 5050

root@iZbp1be068ksa92vuf0kbdZ:~/zym/c-small-pants# gdb file
GNU gdb (Ubuntu 12.1-0ubuntu1~22.04.2) 12.1
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from file...
(gdb) r
Starting program: /root/zym/c-small-pants/file 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
I will begin
running done, result is: [1-100]=5050 /结果展示
[Inferior 1 (process 68489) exited normally]
(gdb) 

cgdb调试是会把源文件的代码一起显示的 

b+行号 断点

 删除断点 d+断点编号

先用info b去查看断点的信息,可以知道断点编号

逐过程 n/next

逐语句step/s

输入一个指令后按enter会直接执行上一个命令

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从0开始学PHP面向对象内容之常用设计模式(策略,观察者)

PHP设计模式——行为型模式 PHP 设计模式中的行为模式&#xff08;Behavioral Patterns&#xff09;主要关注对象之间的通信和交互。行为模式的目的是在不暴露对象之间的具体通信细节的情况下&#xff0c;定义对象的行为和职责。它们常用于解决对象如何协调工作的问题&#xff…

解决windows下php8.x及以上版本,在Apache2.4中无法加载CURL扩展的问题

本文已首发于&#xff1a;秋码记录 若你也想搭建一个个人博客&#xff0c;可参考&#xff1a;国内 gitee.com Pages 下线了&#xff0c;致使众多站长纷纷改用 github、gitlab Pages 托管平台 在日新月异的信息化下&#xff0c;软件也在跟随着互联网的脚步&#xff0c;逐步推进…

git 常用命令及问题

一、常用命令 git add filename git add . git commit -m "messge" git commit --amend 修改最近一次的提交 git push origin HEAD:refs/for/master git clone url git checkout branchname 切换分支 git branch -r 查看远程仓库分支列表 git branch br…

【Gitlab】gitrunner并发配置

并发介绍 涉及到并发控制的一共有4个参数: concurrent , limit ,request_concurrency,parallel 全局的配置: [rootiZ2vc6igbukkxw6rbl64ljZ config]# vi config.toml concurrent 4 #这是一个总的全局控制&#xff0c;它限制了所有pipline&#xff0c;所有runner执行器…

利用Python爬虫精准获取淘宝商品详情的深度解析

在数字化时代&#xff0c;数据的价值日益凸显&#xff0c;尤其是在电子商务领域。淘宝作为中国最大的电商平台之一&#xff0c;拥有海量的商品数据&#xff0c;对于研究市场趋势、分析消费者行为等具有重要意义。本文将详细介绍如何使用Python编写爬虫程序&#xff0c;精准获取…

NFT Insider #157:The Sandbox 开启新一期 VoxEdit 比赛

市场数据 加密艺术及收藏品新闻 Artnames 项目上线&#xff0c;将用户姓名转化为个性化 NFT 艺术品 由知名数字艺术家 Arrotu 发起的生成艺术项目「Artnames」正式上线&#xff0c;利用区块链技术将用户姓名转化为独一无二的 NFT 艺术品。该项目于 11 月 14 日启动&#xff0…

Mysql数据库基础篇笔记

目录 sql语句 DDL——数据库定义语言&#xff08;定义库&#xff0c;表&#xff0c;字段&#xff09; 数据库操作&#xff1a; 表操作&#xff1a; DML 增删改语句 DQL 语法编写顺序&#xff1a; 条件查询 DCL 用户管理&#xff1a; 权限管理&#xff1a; 函数 常见字符串内置函…

基于单片机的频率测量电路设计

摘 要&#xff1a; 传统的频率测量设备大多因硬件电路庞大&#xff0c;导致设备整体体积相对较大&#xff0c;且测量频率信号的精确度低&#xff0c;测量范围较小&#xff0c;运行速度较慢。 据此&#xff0c;介绍了一种以 AT89C51 单片机为控制核心&#xff0c;由放大整形模块…

解决Ubuntu DNS覆盖写入127.0.0.53

ubuntu22.04解析网址时报错如图所示&#xff1a; 因为/etc/resolve.conf中存在 nameserver 127.0.0.53回环地址造成循环引用 原因&#xff1a; ubuntu17.0之后特有&#xff0c;systemd-resolvd服务会一直覆盖 解决方法&#xff1a; 1、修改resolv.config文件中的nameserver…

IDEA报错: java: JPS incremental annotation processing is disabled 解决

起因 换了个电脑打开了之前某个老项目IDEA启动springcloud其中某个服务直接报错&#xff0c;信息如下 java: JPS incremental annotation processing is disabled. Compilation results on partial recompilation may be inaccurate. Use build process “jps.track.ap.depen…

C++20: 像Python一样逐行读取文本文件并支持切片操作

概要 逐行读取文本文件&#xff0c;并提取其中连续的几行&#xff0c;这对于 Python 来说是小菜一碟。 C 则很笨拙&#xff0c; 语言不自带这些。 这次我来拯救 C boys & girls&#xff0c; 在 C20 环境下&#xff0c;山寨一个 Python 下的逐行读文本文件、支持 slice 操作…

【NLP高频面题 - LLM架构篇】LLM对Transformer都有哪些优化?

【NLP高频面题 - LLM架构篇】LLM对Transformer都有哪些优化&#xff1f; ⚠︎ 重要性&#xff1a;★★★ &#x1f4af; NLP Github 项目&#xff1a; NLP 项目实践&#xff1a;fasterai/nlp-project-practice 介绍&#xff1a;该仓库围绕着 NLP 任务模型的设计、训练、优化、…

电脑还原重置Windows系统不同操作模式

电脑有问题,遇事不决就重启,一切都不是问题!是真的这样吗。其实不然,主机系统重启确实可以自动修复一些文件错误,或者是设置问题,但是,当你由于安装了错误的驱动或者中毒严重,亦或是蓝屏,那么重启这个方子可能就治不了你的电脑了。 那么,除了当主机出现异常故障现象…

深度学习模型: BERT(Bidirectional Encoder Representations from Transformers)详解

一、引言 自然语言处理&#xff08;NLP&#xff09;领域在过去几十年取得了显著的进展。从早期基于规则的方法到统计机器学习方法&#xff0c;再到如今基于深度学习的模型&#xff0c;NLP 不断向着更高的准确性和效率迈进。BERT 的出现为 NLP 带来了新的突破&#xff0c;它能够…

亚马逊开发视频人工智能模型,The Information 报道

根据《The Information》周三的报道&#xff0c;电子商务巨头亚马逊&#xff08;AMZN&#xff09;已开发出一种新的生成式人工智能&#xff08;AI&#xff09;&#xff0c;不仅能处理文本&#xff0c;还能处理图片和视频&#xff0c;从而减少对人工智能初创公司Anthropic的依赖…

LLM学习笔记(13)分词器 tokenizer

由于神经网络模型不能直接处理文本&#xff0c;因此我们需要先将文本转换为数字&#xff0c;这个过程被称为编码 (Encoding)&#xff0c;其包含两个步骤&#xff1a; 使用分词器 (tokenizer) 将文本按词、子词、字符切分为 tokens&#xff1b;将所有的 token 映射到对应的 tok…

通过LabVIEW项目判断开发环境是否正版

在接收或分析他人提供的LabVIEW项目时&#xff0c;判断其开发环境是否为正版软件对于保护知识产权和避免使用非法软件至关重要。本文将详细介绍如何通过项目文件、可执行程序及开发环境信息判断LabVIEW是否为正版。 ​ 1. 从项目文件判断 LabVIEW项目的源码&#xff08;VI 文件…

node.js基础学习-url模块-url地址处理(二)

前言 前面我们创建了一个HTTP服务器&#xff0c;如果只是简单的http://localhost:3000/about这种链接我们是可以处理的&#xff0c;但是实际运用中一般链接都会带参数&#xff0c;这样的话如果我们只是简单的判断链接来分配数据&#xff0c;就会报404找不到链接。为了解决这个问…

思科网络设备常用命令整理

思科网络设备的配置命令非常丰富&#xff0c;广泛应用于路由器、交换机和其他网络设备的管理与配置。以下是一些常见的思科设备配置命令&#xff0c;按照功能分类&#xff0c;以帮助你快速查找和使用。 一、基本命令 查看当前配置和状态 show running-config&#xff1a;查看…

2024年信号处理与神经网络应用(SPNNA 2024)

会议官网&#xff1a;www.spnna.org 会议时间&#xff1a;2024年12月13-15日 会议地点&#xff1a;中国武汉