购物类网站模板,怎么网站怎么建设框架,网站怎么做到秒收录,wordpress网站模版Linux相关知识点可以通过点击以下链接进行学习一起加油#xff01;初识指令指令进阶权限管理yum包管理与vim编辑器GCC/G编译器make与Makefile自动化构建 在 Linux 开发中#xff0c;GDB 调试器和 Git 版本控制工具是开发者必备的利器。GDB 帮助快速定位代码问题#xff0c;G…
Linux相关知识点可以通过点击以下链接进行学习一起加油初识指令指令进阶权限管理yum包管理与vim编辑器GCC/G编译器make与Makefile自动化构建 在 Linux 开发中GDB 调试器和 Git 版本控制工具是开发者必备的利器。GDB 帮助快速定位代码问题Git 则提供高效的版本管理与协作支持。本指南将简明介绍两者的核心功能与使用技巧助力提升开发效率。 个人主页是店小二呀 C语言专栏C语言 C专栏 C 初阶数据结构专栏 初阶数据结构 高阶数据结构专栏 高阶数据结构 Linux专栏 Linux
喜欢的诗句:无人扶我青云志 我自踏雪至山巅 文章目录 一、Git版本控制器1.1 Git与GitHub关系1.2 安装git 二、GitHub创建项目2.1 新建仓库2.2 将远端仓库拉起到本地2.3 一、二板斧:addcommit2.3.1 设置git上传2.3.2 git add与git commit在做什么重点 2.4 三板斧:push2.5 git其他选项2.5.1 git log可以查看提交记录2.5.2 git status可以查看当前目录状态 三、git流程解析四、Linux调试器-gbd4.1 、可执行程序生成调试信息4.3 readELF指令查看调试信息 五、gdb相关调式指令5.1 list调式指令5.2 run调试指令5.3 断点相关调试指令5.3.1 breakpoint调试指令5.3.2 info breakdpoints调试指令5.3.3 delete调试指令5.3.4 disable调试指令5.3.5 enable调试指令 5.4 next调试指令5.5 step调式指令5.6 printf 调式指令5.7 display调试指令5.8 undisplay调式指令 六、快速排查问题6.1 continue 调式指令6.2 finish 调式指令6.2.1 next和finish区别 6.3 until调式指令6.4 set var调式指令 一、Git版本控制器
1.1 Git与GitHub关系 【Git】Git是版本控制系统专门用于管理和跟踪代码的修改历史。**它能够在本地完整保存项目的所有版本方便开发者在自己的电脑上管理项目记录每次更改。【GitHub】GitHub是基于Git的远程平台GitHub是一个托管代码的在线平台它建立在Git之上为Git仓库提供了一个云端存储库。 Git主要是一个在本地管理文件版本的工具用于跟踪文件的每次修改实现代码的历史管理。而为了满足大规模协作的需求GitHub应运而生它在云端提供了一个基于Git的仓库平台让开发者可以远程存储、共享代码并实现多人协作和代码同步。Git负责本地的版本控制而GitHub是对Git功能的拓展实现了在云端共享和管理代码的能力。
1.2 安装git Linux下安装git: sudo yum install -y git 二、GitHub创建项目
2.1 新建仓库
对于Git是一个工具而是gitee和github是为了Git搭建的网址。 在这里选择你需要的代码语言来保存版本。README文件用于仓库的说明创建时会自动生成中英文版本。在分支选项中这里推荐选择单分支是为了简化项目管理特别是在项目初期或只是用于代码托管时不需要复杂的分支结构。单分支模式更适合简单的版本控制避免了多分支带来的合并冲突和管理开销。
2.2 将远端仓库拉起到本地 1.首先在普通用户家目录下下载代码请复制以下命令到终端执行。 指令git clone 地址 2.克隆到普通用户家目录下我们通过ls -la指令进行查看。 3.当我们将远端仓库拉取到本地为了确保提交的代码身份被Gitee/GitHub正确识别需要在本地进行相关配置 将本地仓库里的文件拷贝远端仓库为了方便测试代码统一放到一个testgit文件中然后进入远端仓库目录进行拷贝。 命令cp …/testgit . -rf 2.3 一、二板斧:addcommit 相关指令命令 【git add . 】:将当前位置的所有文件都添加到本地仓库上【git commit -m内容】 (内容可以是日志或记录不能随便填写必须填写):该步骤是把内容提交到本地仓库中跟远端仓库没有关系的 2.3.1 设置git上传
如果是首次使用需要配置邮箱和用户名。是为了确保可以找到这份代码的源头。 设置命令 git config -global user.email-“你的邮箱”git config -global user.name-“你的名字” 2.3.2 git add与git commit在做什么重点
git add 和 git commit 只能在 Git 仓库的目录及其子目录中操作不能直接将其他路径的文件添加到该仓库的版本控制中。
Git 的工作流程分成了几个不同的区域工作区、暂存区和本地仓库。简单来说Git 并不会自动保存工作区中的修改而是需要显式地通过 git add 和 git commit 命令将更改记录到本地仓库。 工作区Working Directory这是你在项目目录中看到的文件。当你对文件进行修改时这些更改只存在于工作区还没有被 Git 跟踪为新版本。暂存区Staging Area当你运行 git add 命令时Git 会将选定的更改比如修改、添加或删除的文件添加到暂存区。暂存区是一个“待提交”的清单是 Git 知道你想提交的内容但还没有正式保存的地方。本地仓库Local Repository当你运行 git commit 命令时Git 会将暂存区的内容提交到本地仓库中这就创建了一个新的“版本”记录。这些提交在本地仓库中保存下来可以随时查阅或还原。 2.4 三板斧:push 命令 git push 这里需要输入你在平台上的账号名和密码完成本地仓库跟远端仓库进行同步
2.5 git其他选项
2.5.1 git log可以查看提交记录 2.5.2 git status可以查看当前目录状态 这里我只是addcommit并没有同步到远端。系统就会提示当前我已经托管到本地仓库但是还没有同步到远端。然后push同步就不需要做任何操作拉。
三、git流程解析
1..git 目录是 Git 本地仓库通过 add 命令可以将修改的内容提交到一个暂存区方便后续的版本控制和管理。 2.commit 会将暂存区中的内容提交到本地仓库并清空暂存区。最后push 会将本地仓库的更改同步到远程仓库。 3..gitgnore文件 它实际上是一个配置文件用于指定哪些文件或文件类型不应被添加到版本控制中。不要忘记使用*符号它是一个通配符用于匹配任意数量的字符。我们可以自行编辑该文件将不想纳入版本控制的文件后缀或路径写入其中。 四、Linux调试器-gbd
知识铺垫 程序的发布方式有两种debug模式和release模式Linux gcc/g出来的二进制程序默认是release模式要使用gdb调试*必须在源代码生成二进制程序的时候加上 -g 选项 4.1 、可执行程序生成调试信息 gdb系统是默认安装直接输入 gdb 即可启动调试器。 在Linux下调试只能使用gdb进行调试。-g选项用于在编译时生成调试信息对此启用 -g 选项后文件体积会增大但不会影响程序的执行速度 4.3 readELF指令查看调试信息
通过 readelf 工具可以查看使用 -g 选项生成的可执行文件中的调试信息。readelf 是一个用于读取 ELF 格式文件的命令行工具可以帮助我们检查 ELF 文件的头信息、段和节的内容其中也包括调试信息。 在 Linux 系统中虽然可执行文件是二进制格式但其内部结构采用了 ELF Executable and Linkable Format/可执行与可链接格式格式可以通过 readELF 工具查看。
五、gdb相关调式指令 调式指令可以全称和简写得到效果是一致的这里通常采用简写。 q(退出quit) 5.1 list调式指令
【l/list】:查找源文件内容 两种使用方式 【listl 行号】显示binFile源代码接着上次的位置往下列每次列10行【listl 函数名】列出某个函数的源代码【注意事项】:如果list/ l 后面直接跟对应的文件名是无法进行查看的在gdb当中默认可以在该文件直接查看。 如果想要从头开始进行查找可以简写l 0从0开始进行查找
虽然上list/ l 后面直接跟对应的文件名是无法进行查看的但是我们可以文件名基础之上带上行号或函数可以进行查找啦。 **gdb会默认记录你最近执行的一条命令的这里默认打印十行这里可以直接回车回车就看见全部源文件。**如果查找到结尾会有系统提示比如:我们对应的整个文件一共有24行。 【查找时是否应该以被查找的行号或函数作为起点】
如果输入想查看的行号和函数会显示上下文。因为我们一般在看一份代码的上下号指定的行就是我们默认调试就是想看他的上下文。
5.2 run调试指令
【r/run】运行程序 在调试之前都需要将程序运行起来r回车 **r 指令类似于按下 F5会直接编译并运行程序直到结束。**但在这种模式下无法进行调试因此我们可以先设置一个断点以便在指定位置暂停执行。
5.3 断点相关调试指令
5.3.1 breakpoint调试指令
【b/breakpoint】:设置断点 打断点方式 【break(b) 行号 :】在某一行设置断点【break 函数名 :】在某个函数开头设置断点其中 : 用于指定文件和函数断点不能连续打编号被使用不会重现。断点编号本质是一个线性增长的计数器 【使用场景】:b myproess.c :main 图片效果解释 函数本质上就是一个代码块。设置断点时不是设置在某一行代码上而是设置在函数的入口地址。例如不是第 15 行而是第 17 行函数的起始位置 5.3.2 info breakdpoints调试指令
【i b/info breakdpoints】查看当前设置了哪些断点
通过info b调试指令可以查看当前设置断点其中设置断点都是具有线性增加的Num编号。 5.3.3 delete调试指令
【d/delete Num(编号)】:删除指定编号断点
这里删除断点不能通过指定文件名、行号、函数名等形式删除而是通过Num编号 在调试过程中断点编号是线性增长的计数器因此断点的编号会逐渐增加而不会重复使用。由于编号不会重置所以断点不能连续设置即使之前的断点已删除或禁用其编号也不会再重新分配。这种设计保证了每个断点在整个调试过程中都有一个唯一编号。 5.3.4 disable调试指令
【disable Num(编号)】:禁用断点关闭Enb使能 5.3.5 enable调试指令
【enable Num(编号)】:启用断点开启Enb使能
5.4 next调试指令 gbd会默认记录最近一次的指令可以回车执行最近一次指令。 【n/next】逐过程调试类似于我们F10 5.5 step调式指令
【s/step】逐过程逐语句调试可进入到函数内部类似于我们F11
5.6 printf 调式指令
【p/printf 变量】打印变量值
在调试器中$ 通常用于表示查询结果的编号。查看变量的内容或地址时不能直接使用 p 变量名而应通过 p $变量名 来引用已查询过的结果。
5.7 display调试指令 如果希望变量的数值始终显示并在每次调试时自动刷新可以使用 display 变量名 命令。 【display】常显示变量的数值具有相关编号 5.8 undisplay调式指令 要取消变量的自动显示不能直接使用 undisplay a 或 undisplay a而是需要使用 undisplay 编号 命令。 【undisplay 编号】取消变量的自动显示 六、快速排查问题 【问题】:无论是使用 VS 调试器还是 gdb 调用调试核心目标是什么 并不是单纯地通过调试就能解决所有问题而是找到代码中的具体问题并针对性地分析和修复。归根结底调试的核心在于发现问题。
通过设置断点可以将程序执行划分为不同的范围。如果某个范围内发生崩溃就可以对这一范围进行局部调试。断点的作用就是帮助我们快速缩小问题范围尤其在面对冗长的代码时断点能显著提高排查效率。
6.1 continue 调式指令
【c/continue】:断点处跳跃 6.2 finish 调式指令
【finish】指令直接运行完当前所在的函数并停下。使用 finish 时调试器不会逐步执行函数内部的代码而是快速跳出函数直接返回调用点。这在函数内部细节不重要、或者希望快速查看函数返回结果时非常实用。 6.2.1 next和finish区别
因此n 和 finish 的关键区别在于 finish 能让你在函数返回后停留并显示返回值而 n 只是跳过整个函数调用并不提供返回值的详细信息。
6.3 until调式指令
【until】指令将程序运行到指定的行号并暂停期间的代码会被正常执行。这非常适合快速跳过某段代码直接查看指定位置的运行状态 6.4 set var调式指令 set var 变量名 新值这个指令非常适合调试复杂逻辑时临时调整变量值 【set var】用于在调试过程中直接修改变量的值从而影响程序的运行状态 以上就是本篇文章的所有内容在此感谢大家的观看这里是Linux笔记希望对你在学习Linux旅途中有所帮助