【Linux第四课 - git、gdb】git仓库的使用、dgb代码调试

目录

  • 一 、git
    • git、gitee、github的理解
    • Linux中git的使用
      • 提交
      • 删除
  • 二 、gdb - 调试工具
    • 进入gdb版本
    • gdb开始调试
      • 1
      • 2
      • 3、范围查找

一 、git

在linux中使用
分支管理、多人协作

git、gitee、github的理解

git是版本控制工具,gitee和github是网站

Linux中git的使用

在这里插入图片描述

提交

1、安装git

sudo yum install -y git

2、进入gitee中我的仓库
选择仓库的HTTP链接
在这里插入图片描述

3、将HTTP链接在Linux中克隆

git clone 网址

在这里插入图片描述
4、将代码拷贝到本地工作区

cp ../文件名 . -rf

在这里插入图片描述

5、把本地工作区没有添加到仓库的添加到仓库

git add .

在这里插入图片描述
6、提交到本地仓库

git commit -m "提交日志"

第一次在Linux中使用git可能有下面报错,按下面指令写

在这里插入图片描述
7、push到远端

git push

需要输入账号和密码(登录gitee时的账号密码)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
8、git log
查看历史提交记录
在这里插入图片描述
9、git status
显示当前工作区
在这里插入图片描述

删除

删除也是修改也需要提交

git rm -r 文件名

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

问题:远程库与本地库不一致造成的,在hint中也有提示把远程库同步到本地库就可以了(一旦提交成功就必须被所有人看到)
解决方法:git pull --rebase origin master

之后再git push就可以了
在这里插入图片描述

二 、gdb - 调试工具

安装gdb

sudo yum install -y gdb

进入gdb版本

软件发布一般有两种方式:
1、debug(可以调试),形成的可执行程序添加了调试信息
2、release(不可以调试),形成的可执行程序去掉了调试信息
gcc/g++编译时是什么模式?是release
gcc的默认行为:
1、默认是动态链接(动静态库)
2、默认是release版本发布
让gcc/g++以debug版本发布:改Makefielgcc -o $@ $^ -g
在这里插入图片描述

1、debug版本为何会有调试信息
(1)debug版本比release版本大
(2)debug版本里面的格式信息ELF有debug信息
在这里插入图片描述
在这里插入图片描述

readelf:读取可执行程序的格式

readelf -S 可执行程序名

gdb开始调试

windows基本调试功能
1、运行起来才能调试
2、看到代码
3、打断点
4、局部调试
5、看到局部变量的内容和地址
6、看到调用栈
7、单步
8、进入函数(f11 - 逐句语句)
f10 - 逐过程

进入gdb

gdb 可执行程序

退出

quit

1

1、显示代码 - l
list
gdb会默认保留上一次访问到的位置

l + 行号

在这里插入图片描述

2、运行程序 - r
在这里插入图片描述

3、打断点 - b
在函数入口处打断点

b + 行号/函数名(函数入口处)

在某指定文件的指定行号打

b + 指定文件名(test.c):行号

只有一个文件时,打在指定行号上

b + 行号

在这里插入图片描述

显示所打的所以断点

info b

在这里插入图片描述

4、删除断点

d + 断点号

在这里插入图片描述

5、使能(禁用/开启)断点
禁用某断点

disable + 断点号

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

启用某断点

enable + 断点号

在这里插入图片描述

2

6、逐过程n(next)和逐语句s(step)
逐过程 n

n

逐语句 s

s

进入一个循环之后一直按回车就会一直在一个循环里跑
7、显示局部变量

p 变量名
p &变量名

8、变量常显示与取消
常显示

display 变量名
display &变量名

取消常显示

undisplay 常显示编号

3、范围查找

9、从一个断点跑到下一个断点
continue

c

10、查看调用堆栈

bt

11、将一个函数运行结束就停下来

finish

12、在一个范围内,直接运行到指定行

until 行号

13、改局部变量的内容(不用改代码,多分支测试)

set var name=value

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

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

相关文章

编程入门(六)【Linux系统基础操作四】

读者大大们好呀!!!☀️☀️☀️ 🔥 欢迎来到我的博客 👀期待大大的关注哦❗️❗️❗️ 🚀欢迎收看我的主页文章➡️寻至善的主页 文章目录 🔥前言🚀if else条件控制基本的if语句带else的if语句嵌…

Jmeter性能测试(四)

一、遇到问题解决思路 1、检查请求头是否正确 2、检查请求参数是否正确 3、检查鉴权信息是否正确 4、检查变量作用域 5、检查数据提取是否正确(正则/json提取器) 二、请求头检查 1、在Http信息头管理器查看 2、注意这里的变量作用域是全局的 三、请求参数检查 1、在查看结…

硬件知识积累 音频插座的了解,看音频插座的原理图来了解音频插座的引脚。

1. 音频接口 音频插座是一种用于连接音频信号线路的电子元件,常见于音频设备(如音响、耳机、话筒等)中。它的主要作用是将电子信号转化为声音信号,以满足人们对于音乐、电影、游戏等方面的需求。 根据插头形状的不同,音…

萤瓴优选:短视频带货新风口,普通人不可错过的黄金赛道!

随着电商行业的快速发展,短视频带货成为了现代营销中的一股新势力。在这个激烈竞争的市场环境中,如何找准一个适合自己的发展方向成为了很多人的关注焦点。2024年起,萤瓴优选应运而生,打造出了一个让普通人也能参与其中的短视频带…

使用 Parallels Desktop 在 Mac 上畅玩 PC 游戏

我们不再需要接受 “Mac 不是为游戏而打造” 这一事实;Parallels Desktop 通过将电脑变成高性能的游戏设备,从而改变了一切。 Parallels Desktop 充分利用 Mac 硬件的强大功能,让您无缝畅玩 Windows 专享游戏。 性能得到提升,可玩…

软件测试开发之-基于需求文档、设计文档、测试用例的测试答疑助手

本文将基于 LangChain 实现一个 mini 的实战案例。这次实战主要完成的任务,就是设计一个测试答疑助手,这个测试答疑助手的主要功能为基于本地的文档和数据,回答给出的自然语言问题,比如一些数据的统计,查找、组合。 示…

二总线,替代传统485总线通讯,主动上报方案简易实现方法

二总线通信设计专栏 《二总线,替代传统485总线通讯,选型及应用-CSDN博客》《二总线,替代传统485总线通讯,低成本直流载波方案实现及原理-CSDN博客》《二总线,替代传统485总线通讯,调试避坑指南之最大的电流…

【大数据】分布式数据库HBase下载安装教程

目录 1.下载安装 2.配置 2.1.启动hadoop 2.2.单机模式 2.3.伪分布式集群 1.下载安装 HBase和Hadoop之间有版本对应关系,之前用的hadoop是3.1.3,选择的HBase的版本是2.2.X。 下载地址: Index of /dist/hbase 配置环境变量&#xff1a…

CentOS 7 :虚拟机网络环境配置+ 安装gcc(新手进)

虚拟机安装完centos的系统却发现无法正常联网,咋破! 几个简单的步骤: 一、检查和设置虚拟机网络适配器 这里笔者使用的桥接模式,朋友们可以有不同的选项设置 二、查看宿主机的网络 以笔者的为例,宿主机采用wlan上网模…

一个圈圈的机制玩法

什么是一个圈圈,说白了就是一个撸广告的平台,只是引入了减产机制,九维机制和分成机制,再加上有央企背景,做的一个区块链平台。 玩法很简单,就是撸广告获取能量,然后获取绿色能量,等…

【matlab基础知识代码】(十三)矩阵的相似变换与三角分解矩阵的Jordan 变换与奇异值分解

Cholesky分解 - 知乎 (zhihu.com)(之前学习牛顿法有涉及到Cholesky的相关证明) Cholesky分解是一种将一个对称正定矩阵分解为一个下三角矩阵和其转置的乘积的方法。简单来讲,就是将一个矩阵分解为一个下三角矩阵和其转置矩阵相乘的结果。 C…

招聘招商求职系统asp.net+sqlserver

招聘招商求职系统asp.netsqlserver 首 页 招聘信息 公寓信息 物品求购 发布信息 管理员后台登陆 账号密码TSoft 111 审核 招聘信息 求职信息 培训信息 说明文档 运行前附加数据库.mdf(或sql生成数据库) 主要技术: 基于asp.net架构和sql s…

【密评】 | 商用密码应用安全性评估从业人员考核题库(6/58)

根据Kerckhoffs原则,密码系统的安全性主要依赖于()。 A. 密钥 B. 加密算法 C. 解密算法 D. 通信双方 2000年10月,美国NIST宣布()算法作为新的高级加密标准AES。 A. Rijndael B. RC6 C. SERPENT D. Twofish…

HackMyVM-VivifyTech

目录 信息收集 arp nmap nikto whatweb WEB web信息收集 wpscan feroxbuster hydra 提权 系统信息收集 横向渗透 git提权 get root 信息收集 arp ┌──(root㉿0x00)-[~/HackMyVM] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 08:00:27:9d:6d:7b, …

HTTP 请求走私漏洞

漏洞介绍 http请求走私漏洞,一句话概括就是像走私饭一样,在一个http请求包中携带着另一个请求包或者是多个。在前端看来这是一个请求包很正常的请求包,但是如果来到了后端处理,就会被解析成多个请求包。最终就会导致没有授权而访问…

学习Uni-app开发小程序Day3

经过五一长假,回过头在去看学习的东西,发现仍然是一筹莫展的,看来,学习是不能松懈的,得,自己在把以前的从头复习一遍,加深印象。今天在继续听课,但是出现一个问题,是黑码…

力扣-21. 合并两个有序链表-js实现

/*** Definition for singly-linked list.* function ListNode(val, next) {* this.val (valundefined ? 0 : val)* this.next (nextundefined ? null : next)* }*/ /*** param {ListNode} list1* param {ListNode} list2* return {ListNode}*/ const mergeTwoList…

关于zabbix简介及zabbix服务端的部署

文章目录 一、zabbix概念1、zabbix简介2、zabbix主要特点3、zabbix运行机制4、zabbix应用场景5、zabbix监控原理6、zabbix的子程序7、zabbix监控的架构模式7.1 server-client架构7.2 server-proxy-client架构7.3 master-node-client 二、部署zabbix1、服务器配置2、服务器环境3…

CSS伪类选择器

目录 前言: 链接伪类: 用户行为伪类: 元素状态伪类: 结构化伪类: 否定伪类: 目标伪类: 输入伪类: 前言: 在CSS中有一种特殊的选择器:伪类选择器&…

深入分析网络智能摄像头的RTSP协议安全风险

本文为转载,原作者:山石网科安全技术研究院 网络摄像头作为现代安防体系的关键组成部分,已经广泛应用于各类场所,包括交通枢纽、教育机构、企业办公区、零售商场等公共和私人领域。它们主要负责提供实时视频监控,以加…