基础开发工具(下)

本篇目标:

学习git命令行的简单操作,能够将代码上传到gitee上

掌握简单gdb使用于调试

一.版本控制器git

1.安装git

如图:

由于我已经安装了git,自然是nothing to do,而未安装的,看到complete就代表安装成功了,而git

version可以看我们的git的版本。

2.在Gitee创建项目

<1>.注册账号

工作台 - Gitee.com处注册即可

<2>.创建项目 登陆成功后,直接点击页面右上角的+,如图:,再点击"新建仓库",然后在新的页面,根据需要填写仓库名称与路径,记得要勾选初始化。

<3>.在创建好的仓库里,点击克隆,再点击复制git clone +"地址"

3.git的简单指令

<1>.git clone +"地址"后,创建了一个目录,再进入目录里

<2>.git init,可用于初始化本地的git仓库

<3>.配置自己用户名和常用的邮箱,如图:

<4>.git add +文件名

如图:

但是这个也只是将test.c放到了暂存区里,还没有放到本地的仓库

<5>.git commit -m "存放的内容"

如图:

此时提交改动到本地,但是要注意添加的内容不要瞎写,我们可以git log看,如图:

此时仍没有关联到远程的仓库。

<6>.关联到远程仓库:git remote add origin + "HTTPS/SSH的地址"

<7>.git push,同步到远端服务器上,如图:

我们需要填写用户名与密码。

二.调试器-gdb/cgdb使用

1.样例代码

test.c中:

cpp 复制代码
#include <stdio.h>
int Sum(int s, int e)
{
    int result = 0;
    for(int i = s; i <= e; i++)
    {
        result += i;
    }
    return result;
}
int main()
{
    int start = 1;
    int end = 100;
    printf("I will begin\n");
    int n = Sum(start, end);
    printf("running done, result is: [%d-%d]=%d\n", start, end, n);
    return 0;
}

makefile中:

cpp 复制代码
BIN=test
SRC=$(wildcard *.c)
OBJ=$(SRC:.c=.o)

$(BIN):$(OBJ)
    gcc -o $@ $^ 
%.o:%.c
    gcc -c $< -o $@     
                                                                    
.PHONY:clean
clean:                                                                                         
    rm -f $(BIN) $(OBJ)

2.预备

程序的发布方式有两种,debug模式和release 模式, Linux gcc/g++ 出来的⼆进制程默认是release 模式,所以要使用gdb调试,必须在源代码上成⼆进制程序的时候,加上-g 选项,如果没有添加,程序无法被编译成debug模式

例如:

这个是没有debug模式的,而在gcc加上-g 选项就可以编译成debug模式,如图:

3.cgdb常见使用

<1>.安装cgdb:

• Ubuntu:sudoapt-getinstall-y cgdb

• Centos: sudoyuminstall-ycgdb

<2>.开始: cgdb +可执行文件 ,如图:

<3>.退出:q

<4>.其他:

|------------------------|------------------------|------------------|
| 命令 | 作用 | 例子 |
| list/l | 显⽰源代码,从上次位置开始,每次列出 10⾏ | l 10 |
| list/l 函数名 | 列出指定函数的源代码 | l main |
| list/l ⽂件名:⾏号 | 列出指定⽂件的源代码 | l mycmd.c:1 |
| r/run | 从程序开始连续执⾏ | r |
| n/next | 单步执⾏,不进⼊函数内部,逐过程F10 | next |
| s/step | 单步执⾏,进⼊函数内部,逐语句F11 | s |
| break/b 文件名:行号 | 在指定⾏号设置断点 | b 10 b test.c:10 |
| info break/b | 查看当前所有断点的信息 | info b |
| finish | 执⾏到当前函数返回,然后停⽌ | finish |
| info/i locals | 查看当前栈帧的局部变量值 | info locals |
| p 变量 | 打印指定变量的值 | p i |
| continue/c | 从当前断点执行到下一个断点 | c |
| delete/d breakpoints n | 删除序号为n的断点 | d 1 |
| disable breakpoints | 禁⽤断点 | disable 17 |
| enable breakpoints | 启⽤断点 | enable 1 |
| info/i breakpoints | 查看当前设置的断点列表 | info b |
| display 变量名 | 跟踪显⽰指定变量的值(每次停⽌时) | display i |
| undisplay 编号 | 取消对指定编号的变量的跟踪显⽰ | undisplay i |
| until X ⾏号 | 执⾏到指定⾏号 | until 17 |

4.常见技巧

<1>.watch :执行时监视⼀个表达式(如变量)的值,如果监视的表达式在程序运行期间的值发生变化,GDB会暂停程序的执行,并通知使用者

<2>.set var 变量=值:修改变量的值

相关推荐
Raas1002 小时前
MAI Gateway(魔芋企业级AI网关)技术揭秘:AI网关支持哪些模型?从原理到落地
大数据·人工智能·网关·gateway·mai gateway·企业级产品
YangYang9YangYan4 小时前
2026 校招商品分析岗位 JD 拆解,核心指标、工具与面试考点
大数据·数据库·数据分析
大大大大晴天5 小时前
OpenMetadata VS DataHub VS Atlas VS Gravitino
大数据
Qyr998 小时前
2026全球汽车碳刷行业发展全景分析报告
大数据
蓝速科技9 小时前
便民服务大厅 AI 数字人一体机场景适配与落地指南丨蓝速科技
大数据·网络·数据结构·人工智能·自然语言处理·数据分析·运维开发
精益数智工坊9 小时前
云计算环境数据怎么同步?云计算集成方案有哪些?
大数据·人工智能·数据挖掘·数据可视化
huashengzsj10 小时前
什么是DMS经销商管理系统?国内经销商管理系统有哪些品牌
大数据
IT毕设梦工厂11 小时前
计算机毕业设计选题推荐:基于大数据的草鱼价格分析与可视化|毕业设计选题|计算机毕设|选题推荐|毕设指导|项目定制|源码|高质量项目
大数据·hadoop·python·数据挖掘·数据分析·课程设计·大数据毕设项目
辛迪聊物业数字化11 小时前
智慧社区物业管理软件新手部署与实操指南
大数据·php
字节跳动数据平台12 小时前
模型再强,为什么 Demo 还是进不了生产?
大数据