本篇目标:
学习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 变量=值:修改变量的值