git/gdb指令

前言

在linux上进行开发,我们需要管理大量的文件,为了能够更⽅便我们管理这些不同版本的⽂件,便有了版本控制器git;同时我们需要gdb进行代码调试


文章目录


一、版本控制器Git

git是一个分布式的版本控制器

git可以在自己的客户端使用,也可以在远端服务器使用;也可以互相在两个客户端之间使用,所以他是一个分布式版本控制器

一、Git操作

git提交的时候,只会提交变化的部分

.git,才是我们真正拉取过来的本地仓库

拉取操作:git clone http:/.....

将代码放进刚才拉取来的目录下:git add

add这个操作并没真正把文件放到本地仓库中(.git),而是先放到暂存区,多个文件一并提交

提交指令:git commmit -m "日志信息"
拉取指令:git push 需要填⼊⽤⼾名密码.同步成功后,刷新Github⻚⾯就能看到代码改动了

怎么确定你是否安装了git命令

如果没有安装,ubuntu环境下sudo apt install -y git

在进行add push commit的时候,gitignore文件只会添加源文件(.c .h),过滤后缀不是.c .h的,且这类文件既不会被git远端托管,本地仓库也不会管,只是linux下的一个临时文件

二、gdb

1.首次使用填邮箱和用户名

2.gdb

  • linux gcc/g++出来的二进制程序默认是release版本的
  • 要使用gdb调试,必须在源代码生成二进制程序的时候加上-g选项,如果不加程序无法被调试

gcc -o $< -g

程序要调试必须是debug模式

gdb调的是可执行程序,

但是在使用过程中gdb不方便我们边看代码变调试,我们可以使用cgdb,他和gdb一样,只不过cgdb实现了代码文件和调试信息分屏操作,更方便我们进行调试,在接下来介绍的使用方法中gdb/cgdb同样适用

使用方法

b:打断点b 文件名:行号
b 函数名 给某一个函数的入口处打断点
b:行号

  • 怎么查看断点info b

disable 代码编号:断点可以被使能(可以禁用)
enable 代码编号:断点取消禁用
d 断点编号(删除断点)
c:(continue)直接从一个断点调试到另一个断点

断点的本质就是把代码块进行划分,以块为单位定位错误区域
utile 行号:快速跳转某一行,可以快速结束循环
display 变量名(地址):相当于VS的监视窗口,可以常显式某些变量的信息
undisplay 编号:取消常显示
r运行程序
s:逐语句调试
n(next):逐过程调试
bt:查看函数调用栈桢,
finish:如果你既不想逐语句也不想逐过程就是想把这个函数结束掉,局部函数传递值通过寄存器传值给外部函数;
p:想临时查看某个变量的值p 也可以查看表达式的值
info locals:查看当前函数所有的临时变量的值

cgdb的三个调试技巧

3.1 watch 变量名

可以查看变量变化前,变化后的情况,只要有变化那么你通过watch打的断点就会通知你

使用技巧:如果你有一些变量不应该被修改,但是怀疑它被修改了此时就可以通过watch来查看

3.2set var

直接在调试过程中修改标志位

3.3condition 断点编号 if ...

在已有断点的情况下,给该断点新增条件

3.4cgdb查看代码块便捷操作

esc可以切到代码屏,上下键翻阅代码;输入i退出

相关推荐
IT研究室11 分钟前
最新大数据毕业设计选题推荐-基于大数据的信用等级数据分析与可视化-大数据-Spark-Hadoop-Bigdata
大数据·信息可视化·数据分析·spark·课程设计
不会写代码的女程序猿24 分钟前
商用 AI 四诊仪技术拆解|明理 AI 四诊仪多模态采集方案解析
大数据·人工智能·科技·ai·健康医疗
cspttty42 分钟前
需求预测校招入门:SQL、Excel、统计模型和业务指标怎么学
大数据·数据库
YangYang9YangYan1 小时前
财务 BP 校招面试案例整理|业务场景题 + 数据案例,2027 届求职
大数据·数据库
Rosanci10 小时前
谷歌浏览器插件开发实战指南:从 Hello World 到上架发布
大数据·人工智能·chrome·程序人生
m0_4665252911 小时前
云从科技上线云起ModelHub:AI团队时代的模型算力基础设施
大数据·人工智能·科技
蓝速科技12 小时前
会议室门牌公告通知发布选型与落地指南丨蓝速科技
大数据·运维·数据库·人工智能·科技
郑州光合科技余经理14 小时前
同城外卖小程序开发:下单成功后,后台导出能不能对上用户端状态
开发语言·前端·git·后端·uni-app·php·ai编程
我命由我1234514 小时前
Git 推送报错:error: src refspec main does not match any
运维·git·gitee·github·运维开发·学习方法·版本控制
SelectDB15 小时前
同等资源下 Apache Doris 4.2 vs StarRocks 4.1.1:1TB SSB 与 TPC-H 性能实测
大数据·数据库·数据分析