当前位置: 首页 > news >正文

gdb/git的基本使用

热爱编程的你,一定经常徘徊在写bug和改bug之间,调试器也一定是你随影而行的伙伴,离开了它你应该会寝食难安吧!

目录

gdb的使用

 断点操作

运行调试

 观察数据

Git的使用

仓库的创建和拉取

.gitignore

“三板斧”

常用指令


gdb的使用

下面会介绍linux调试器gdb的简单使用,首先要做的事情一定是要能够进入和退出t调试模式:

上述的过程你一定非常的熟悉,将一段简单的代码g++编译,最后得到了可执行程序test。这时尝试使用gdb进入调试:

gdb 文件名  进入gdb
list/l 行号   查看代码
quit  退出gdb 

 出现这种情况的原因是这样的:Linux gcc/g++出来的二进制程序,默认是动态链接的,默认是release模式,所以当需要调试的时候,应该加上-g选项给编译器标识以debug方式发布。

 断点操作

打断点: break(b)  行号  在改行设置断点,形成编号
查断点: info break(b)   查看断点信息,查看编号
删除断点: delete breakpoints n 删除编号为n的断点delete breakpoints   删除全部断点

运行调试

run(r) 调试运行    vs下的F5
step(s)  逐语句     vs下的F11
next(n)  逐过程     vs下的f10
continue(c)   运行至下一断点处

bt 查看调用堆栈
finish 将对应函数直接运行完
until 行号  执行至指定行

 

 观察数据

p 打印变量的值
dispaly 一直显示变量的值
undispaly 取消对变量的追踪

上述为gdb的一些基本调试操作,希望能陪伴你修改一个又一个的bug!

Git的使用

Git是一款免费、开源的分布式版本控制系统,Gitee是开源中国(OSChina)推出的基于Git的代码托管服务。

登录 - Gitee.com

仓库的创建和拉取

首先在远端创建一个测试仓库:

 

至此我们在远端完成了仓库的创建,接下要做的事情就是克隆远端仓库的地址,在linux环境下将远端仓库拉取到本地:git clone 仓库拉取成功后,这里简单的介绍下.gitignore文件,文件中保存的是一些后缀:

.gitignore

 有了这个文件,你可以将你不想上传的文件类型写进去,在提交内容的时候,带有文件内后缀的文件就不会提交到gitee上了,这样一来就只上传了重要的需要管理的内容。

紧接着,在linux环境中你一定观察到了.git这个目录,先来tree一下观察其结构:

里面有好多东西,我们也不懂是什么。其实我们口语所说的git仓库实际上就是一个目录,也就是.git目录加上里面的内容,我们在向远端提交代码push的过程,其实就是将.git中的内容,更新同步到gitee。至此我们在远端创建了一个仓库,并拉取到了linux环境下的本地。

“三板斧”

先写一个测试文件,用来测试提交:

●提交操作的三板斧 

git add .
git add [文件名]git commit -m '提交日志'git push

常用指令

●如果在远端对文件进行了改动,我们也可以通过git pull命令将信息同步:

新增目录,移动文件

 修改linux.txt文件,再次提交: 

git log 查看提交日志:

http://www.lryc.cn/news/30946.html

相关文章:

  • 信息安全与数学基础-笔记-④二次同余方程
  • Luogu P4447 [AHOI2018初中组]分组
  • 手把手创建flask项目
  • SpringCloud-4_Eureka服务注册与发现
  • 【react全家桶】生命周期
  • 虚拟机安装Windows 10
  • 【CMU15-445数据库】bustub Project #2:B+ Tree(下)
  • leetcode 困难 —— 外星文字典(拓扑排序)
  • ubuntu server 18.04使用tensorflow进行ddqn训练全过程
  • 2023年全国最新二级建造师精选真题及答案14
  • mysql一条语句的写入原理
  • 嵌入式Linux内核代码风格(二)
  • Spring Boot @Aspect 切面编程实现访问请求日志记录
  • 初学者的第一个Linux驱动
  • 7. 拼数
  • Java每天15道面试题 | Redis
  • 13_pinctrl子系统
  • Linux系统对于实施人员的价值
  • ForkJoin 和 Stream并行流
  • 逻辑优化-cofactor
  • 车道线检测CondLaneNet论文和源码解读
  • vue3的插槽slots
  • docker学校服务器管理
  • pv和pvc
  • k8s篇之Pod 干预与 PDB
  • Django学习17 -- ManytoManyField
  • 既然有MySQL了,为什么还要有Redis?
  • RSTP基础要点(上)
  • Linux操作系统学习(信号处理)
  • CopyOnWriteArrayList 源码解读