linux环境基础开发工具3(git 、 gdb)

目录

[linux 版本控制器 git](#linux 版本控制器 git)

Linux调试器-gdb使用


[linux 版本控制器 git](#linux 版本控制器 git)

在gitee创建好的项目页面中复制项目的链接, 以备接下来进行下载

下载项目到本地

创建好一个放置代码的目录

复制代码
git clone [url]

这里的 url 就是刚刚建立好的 项目 的链接

三板斧第一招 : git add

  • 将代码放到刚才下载好的目录中

    git add [文件名]

将需要用 git 管理的文件告知 git

三板斧第二招 : git commit

  • 提交改动到本地

    git commit .

最后的 "." 表示当前目录

  • 提交的时候应该注明提交日志, 描述改动的详细内容

    git commit -m "日志信息"

三板斧第三招 : git push

  • 同步到远端服务器上

    git push

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

删除:gir rm [文件]

然后三板斧提交

复制代码
git rm [文件]

.gitignore #不想提交某些后缀的文件同步到远端的git仓库,就可以添加到.gitignore


Linux调试器-gdb使用

背景

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

示例:

开始使用

  • list/l 行号:显示程序源代码,接着上次的位置往下列,每次列10行。
  • list/l 函数名:列出某个函数的源代码。
  • r或run:运行程序。
  • n 或 next:单条执行。
  • s或step:进入函数调用
  • breakpoint(b) 行号:在某一行设置断点
  • break 函数名:在某个函数开头设置断点
  • info break :查看断点信息。
  • finish:执行到当前函数返回,然后挺下来等待命令
  • print(p):打印表达式的值,通过表达式可以修改变量的值或者调用函数
  • p 变量:打印变量值。
  • set var:修改变量的值
  • continue(或c):从当前位置开始连续而非单步执行程序
  • run(或r):从开始连续而非单步执行程序
  • delete breakpoints:删除所有断点
  • delete breakpoints n:删除序号为n的断点
  • disable breakpoints:禁用断点
  • enable breakpoints:启用断点
  • info(或i) breakpoints:参看当前设置了哪些断点
  • display 变量名:跟踪查看一个变量,每次停下来都显示它的值
  • undisplay:取消对先前设置的那些变量的跟踪
  • until X行号:跳至X行
  • breaktrace(或bt):查看各级函数调用及参数
  • info(i) locals:查看当前栈帧局部变量的值
  • quit:退出gdb

示例代码:
(注:以上指令均以这段源码为例)

复制代码
    1 #include <stdio.h>                                                                                                                         
    2 
    3 int AddToTop(int top)
    4 {
    5     int rueslt = 0;
    6 
    7     int i = 0;
    8     for(i; i <= top; ++i)
    9     {
   10         rueslt += i;
   11     }
   12 
   13     return rueslt;
   14 }
   15 
   16 
   17 int main()
   18 {
   19     int top = 100;
   20 
   21     int res = AddToTop(top);
   22 
   23     printf("res: %d\n", res);
   24 
   25     return 0;
   26 }             

gdb + 源文件 : 开始调试

示例:

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

注:其中,gdb是可以记录历史命令的,输入回车会执行最近一条命令

示例:

r或run:运行程序。

注:开始调试,如果没有设置断点,程序就直接结束 - 相当于vs中的f5

示例:

n 或 next:单条执行。

注:逐过程调试,相当于vs中的f10

示例:

s或step:进入函数调用

注:逐语句调试,相当于vs中的f11

示例:

breakpoint(b) + 行号:在某一行设置断点

示例:

info break:查看断点信息。

示例:

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

注:这个可以理解为是执行完当前函数,vs是没有这一功能的,vs一般是在函数的开头与结尾处设置断点

示例:

p + 变量:打印变量值。

示例:

set var:修改变量的值

注:相当于vs窗口中的监视,可以修改变量的值

示例:

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

注:可以理解为vs中运行至下一个断点,如果中途没有断点,程序直接结束

示例:

d + 编号:删除断点

注:删除的时候不能输入行号,只能输入编号才可以删除成功

示例:

disable breakpoints:禁用断点

enable breakpoints:启用断点

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

示例:

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

示例:

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

示例:

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

注:可以理解为是vs窗口中的调用堆栈

示例:

相关推荐
敢敢J的憨憨L10 分钟前
GPTL(General Purpose Timing Library)使用教程
java·服务器·前端·c++·轻量级计时工具库
---学无止境---26 分钟前
Linux中驱动程序通过fasync异步通知应用程序的实现
linux
cccyi730 分钟前
Linux 进程间通信机制详解
linux·进程通信
北京迅为33 分钟前
【北京迅为】iTOP-4412精英版使用手册-第三十五章 WEB控制LED
linux·嵌入式硬件·嵌入式·4412
让我们一起加油好吗1 小时前
【C++】封装红黑树模拟实现 set 和 map
linux·c++·set·map·红黑树
暴富奥利奥1 小时前
完成docker方式的ros环境配置
linux·学习·docker·容器
秃头菜狗1 小时前
十四、运行经典案例 wordcount
大数据·linux·hadoop
ManageEngineITSM1 小时前
IT 服务自动化的时代:让效率与体验共进
运维·数据库·人工智能·自动化·itsm·工单系统
Bug退退退1232 小时前
Java 网络流式编程
java·服务器·spring·sse
QotomPC2 小时前
软件定义的理想硬件平台:Qotom Q30900SE/UE系列在AIO服务器与边缘网关中的实践
运维·服务器