linux中的git和gdb

git

使用git时需要提前下载git

使用命令yum/apt install git

在linux中需要使用git/gitee来进行代码备份

git是一种进行版本控制的软件

是一个去中心化,分布式的软件

可以让一个项目被多人同时进行操作

将一个项目分布式的存放在多个电脑端

这样做的目的是去中心化

git的操作

首先在gitee上创建一个远端仓库

随后复制仓库的地址

在linux中使用 git clone 仓库地址(获取远端仓库)

即可将git中的仓库拷贝过来

当我们把源文件放入项目仓库中时,默认该源文件与git没有任何关系

git clone 仓库地址可以获取远端仓库

使用git status可以查看远端仓库的状态(查看是否修改)

git add 文件名 可以将文件添加到git中(添加到git的暂存区中)(即将文件临时添加到git仓库中)

git commit -m "提交日志" 可以将源文件正式添加到git仓库中

git push可以将本地仓库和远程仓库同步

git log可以在git仓库中查看该仓库用户的个人信息

在提交git时,如果想要忽略掉一些不想本地托管或上传的文件,就可以在**.gitignore**中添加该类文件的后缀

git仓库的提交,必须要保证本地的仓库和远端的仓库要一致

git pull可以将自己本地的文件和远端仓库的文件同步

经过pull之后,就可以将本地修改过的代码提交git了

如果未同步的代码部分被修改了,则pull会要求程序员手动修改代码

当window和linux同时使用时,会发生冲突,可以使用pull来解决冲突

如果修改了同一个文件,git你不会覆盖,而是将修改暴露出阿里,由程序员自己解决冲突

gdb

gdb是Linux中的调试器

程序的发布方式有两种:debug模式和release模式

程序默认是release模式发布的,如果想要以debug模式发布,需要加 -g

debug模式发布的程序通常体积较大,因为携带了调试信息

看代码list

使用gdb 文件名可以进入gdb模式

在gdb中可以使用list/l 函数名 或list/l 文件名 行号 来看到代码

使用断点break进行调试

使用b 行号 可以在代码中打断点

使用info b就能看到文件中的断点

每个断点在设置后都会存在一个编号,在删除断点时需要使用编号

在一个gdb中始终不退出,断点编号会线性递增

如果不想要删除断点,也可以禁用断点

可以使用disable 断点编号 来禁用断点

使用enable 断点编号 来启用断点

disable breakpoints 可以禁用所有断点

enable breakpoints可以启用所有断点

r可以直接执行文件

n 则是单步执行文件,但是不进入函数内部

s同样是单步执行文件,但是会进入函数内部

在单步执行时,可以使用display 变量名来一直显示变量的值

undisplay 编号 可以取消执行百年好变量的跟踪显示

p 变量名 可以打印变量的值

p 变量名表达式 也可以查询表达式的值

until 行号 可以直接让文件执行到文件的某一行

cgdb可以让代码进行简单的可视化

但是默认cgdb是没有安装的,需要安装

使用 cgdb 就可以一边看代码,一边输入命令了

finish可以将当前函数运行完

gdb中可以使用watch 变量名来监视一个表达式或变量

如果监视的变量发生了变化,则会激活watch,终止运行

watch是一种条件断点

set var 变量=值可以在运行时修改变量的值

set var可以在确认问题所在点时,在运行时直接将错误修改,直接验证结果

条件断点

条件断点常见的有2种

1.新增条件断点

2.给已有的断点新增条件

b 行号/文件名:行号/函数名 if条件可以设置条件断点

condition 断点编号 (无if)条件 可以将断点改造成条件断点

相关推荐
牛马工作号2 小时前
Mosquitto + ACME:从 Docker Compose 部署到 TLS 证书自动续期与加载
运维·docker·容器
Initialize-le5 小时前
Nginx 504 超时、499 一堆?网关排查法
运维·nginx
Android系统攻城狮7 小时前
Linux Gstreamer深度解析之gst_audio_ring_buffer_delay调用流程与实战(七十二)
linux·运维·服务器·gstreamer音视频·音视频进阶
快乐的韭菜根根8 小时前
ubuntu 安装slurm并配置
linux·运维·ubuntu
U-Mail邮件系统8 小时前
自建邮箱服务器有哪些软件?三款主流邮件服务器软件推荐
运维·服务器
倒头就睡的小比特9 小时前
Linux基础指令3
linux·服务器
天远数科10 小时前
零信任架构实战:基于天远贷前风险报告构建自动化消金信贷风控与多头共债排查网关
运维·人工智能·架构·自动化
梦帮科技10 小时前
Kali Linux Scapy 畸形报文构造学——深度解剖非法 TCP Flags 与反常序列号
linux·爬虫·神经网络·算法·数学建模·系统架构·模拟退火算法
半杯咖啡半行码11 小时前
Linux 驱动开发入门:内核模块编程基础
linux·服务器·网络
别动我齐刘海11 小时前
Linux 系统调试学习2
linux·运维·c++·人工智能·学习·机器学习·机器人