Linux基础之git与调试工具gdb

发布于:2024-05-08 ⋅ 阅读:(21) ⋅ 点赞:(0)

目录

一、git的简单介绍和使用方法

1.1 git的介绍

1.2 git的使用方法

1.2.1 三板斧之git add

1.2.2 三板斧之git commit

1.2.3 三板斧之git push

二、gdb的介绍和一些基本使用方法

2.1 背景介绍

2.2 基本的使用方法


一、git的简单介绍和使用方法

1.1 git的介绍

       Git是一种分布式版本控制系统,广泛用于软件开发中跟踪文件变化。它允许多个开发者同时合作,记录文件的修改历史。他具有一下几个特点:

  1. 版本控制:Git可以跟踪文件的变化历史,开发者可以随时查看和恢复到先前的版本。这有助于管理项目的演进,并促进团队成员之间的协作。

  2. 分布式:与集中式版本控制系统不同,Git是分布式的,意味着每个开发者都在本地拥有完整的代码库副本。这使得可以离线工作,并且大多数操作都可以在本地进行,提高了效率。

  3. 分支与合并:Git允许开发者创建分支,即独立的开发线,用于开发新功能或修复bug,而不影响主代码库。开发完成后,可以将分支合并回主分支,实现变更的无缝集成。

  4. 远程仓库:Git支持远程仓库,可通过GitHub、GitLab、Bitbucket等平台进行托管。开发者可以推送本地的变更到远程仓库,并拉取其他人的更新,实现团队间高效的协作。

  5. 工作流程:Git支持多种工作流程,如集中式、特性分支、Gitflow等,使团队可以根据项目需求和结构选择适合的工作流程。这种灵活性使Git适用于不同规模和类型的项目。

       总的来说,Git是一个强大的版本控制和协作工具,提供了能够优化开发流程、保障代码变更完整性和可追溯性的功能。

1.2 git的使用方法

       在使用git之前呢,你得先确保自己有一个远程仓库,没有得话可以去gitee上建立一个,我这里就用gitee进行举例。
       创建好仓库后我们先将仓库克隆到本地来,使用指令:

git clone + 仓库链接

       克隆好之后,你会出现类似于我这样的一个目录:

      有了仓库之后,我就要来讲git中比较实用的三板斧操作了。

1.2.1 三板斧之git add

       首先我们随意的创建一个文件然后写点东西进去,我就写个hello world吧(可以直接在你的克隆的仓库目录下写,等会就不需要移动文件了)。然后使用指令:

git add + 文件名 或者 .

将你指定的文件,或者当前目录下的新文件,添加到本地仓库中去。
那怎么去看我们是否添加成功呢,这里有条指令可以让我们观看本地仓库的状态。

git status  (查看本地仓库的状态)


通过指令我们可以看到我们的本地仓库多了一个新文件test.c

1.2.2 三板斧之git commit

       这个时候文件还在我们的本地仓库,那怎么将其同步到我们的远程仓库中去呢,首先得先使用这里的指令。

git commit -m + "日志"

这里记住:日志一定不要乱写!!
因为面试官是用可能去看你的日志的,要是你一通乱写,那岂不是很尴尬。

这个指令主要是提交改动到本地。

1.2.3 三板斧之git push

这最后一招,才是将我们的代码同步到我们的远程仓库上。指令:

git push

需要填入用户名密码. 同步成功后, 刷新 Gitee页面就能看到代码改动了。

提交成功。

在这里我在补充两个指令:

git log (查看日志)

git pull(同步远端和本地仓库)

二、gdb的介绍和一些基本使用方法

2.1 背景介绍

  • 程序的发布方式有两种,debug模式和release模式。
  • Linux gcc/g++出来的二进制程序,默认是release模式。
  • 如果一份代码要被调试,那这份代码的发布模式一定得是debug的。
  • 要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项。

2.2 基本的使用方法

开始调试:gdb + 调试文件名
退出: ctrl + d 或 quit

  •  list/l 行号:显示binFile源代码,接着上次的位置往下列,每次列10行。

  • list/l 函数名:列出某个函数的源代码。

  • r或run:运行程序。

  • n 或 next:单条执行。(相当于VS中的逐过程调试 即F10)

  • s或step:进入函数调用(相当于VS中的逐语句调试 即F11)

  • break(b) 行号:在某一行设置断点

  • break 函数名:在某个函数开头设置断点

  • info break :查看断点信息。

  • finish:执行到当前函数返回,然后挺下来等待命令

  • print(p):打印表达式的值,通过表达式可以修改变量的值或者调用函数

  • p 变量:打印变量值。

  • set var:修改变量的值

  • continue(或c):从当前位置开始连续而非单步执行程序

  • run(或r):从开始连续而非单步执行程序

  • delete breakpoints:删除所有断点

  • delete breakpoints n:删除序号为n的断点
    (在gdb中,断点是有编号的,删除要根据编号删除)

  • disable breakpoints:禁用断点

  • enable breakpoints:启用断点

  • info(或i) breakpoints:参看当前设置了哪些断点

  • display 变量名:跟踪查看一个变量,每次停下来都显示它的值

  • undisplay:取消对先前设置的那些变量的跟踪

  • until X行号:跳至X行

  • breaktrace(或bt):查看各级函数调用及参数

  • info(i) locals:查看当前栈帧局部变量的值

  • quit:退出gdb