Git版本控制器与GDB/CGDB调试器学习总结
一、Git版本控制器
1.1 安装Git
yum install git
git –version # 查看版本
1.2 在GitHub创建项目
1.3 下载项目到本地
git clone [url]
1.4 Git三板斧
| git add [文件名] | 将文件添加到暂存区,告知Git需要管理 |
| git commit -m "日志信息" | 提交改动到本地仓库,必须注明提交日志 |
| git push | 同步到远端服务器(GitHub),需输入用户名密码 |
1.5 其他常用命令
| git log | 查看提交历史记录 |
| git status | 查看当前仓库状态 |
| git pull | 从远端拉取最新代码 |
1.8 首次使用配置
git config –global user.name "Your Name"
git config –global user.email you@example.com
1.9 免密码提交
可参考配置SSH密钥或使用凭证助手来实现免密码提交。
二、调试器 – GDB/CGDB
2.1 预备知识
- 程序发布方式有两种:debug模式 和 release模式
- Linux下gcc/g++默认生成的是 release模式,不支持调试
- 要使用gdb调试,编译时必须加上 -g 选项
# 默认模式(不支持调试)
gcc mycmd.c -o mycmd
# debug模式(支持调试)
gcc mycmd.c -o mycmd -g
# 验证是否包含调试信息
file mycmd # 会显示 "with debug_info"
2.2 GDB基本使用
| 启动调试 | gdb binFile |
| 退出调试 | ctrl+d 或 quit |
2.3 GDB常用命令大全
运行与控制
| run | r | 从程序开始连续执行 |
| continue | c | 从当前位置继续执行 |
| next | n | 单步执行,不进入函数内部(逐过程,类似F10) |
| step | s | 单步执行,进入函数内部(逐语句,类似F11) |
| finish | – | 执行到当前函数返回后停止 |
| until 行号 | – | 执行到指定行号 |
断点管理
| break 行号 / b 行号 | 在指定行设置断点 |
| break 文件名:行号 | 在指定文件的指定行设置断点 |
| break 函数名 | 在函数开头设置断点 |
| info break / info b | 查看所有断点信息 |
| delete breakpoints / d | 删除所有断点 |
| delete breakpoints n | 删除序号为n的断点 |
| disable breakpoints | 禁用所有断点 |
| enable breakpoints | 启用所有断点 |
查看与修改变量
| print 表达式 / p | 打印表达式的值 |
| p 变量名 | 打印指定变量的值 |
| set var 变量=值 | 修改指定变量的值 |
| display 变量名 | 跟踪显示指定变量(每次停止时自动显示) |
| undisplay 编号 | 取消跟踪显示 |
| info locals | 查看当前栈帧的局部变量值 |
栈与代码查看
| list / l | 显示源代码,每次10行 |
| list 行号 | 显示指定行附近的源代码 |
| list 函数名 | 列出指定函数的源代码 |
| backtrace / bt | 查看当前调用栈 |
2.4 Watch(监视变量变化)
watch 命令用于监视一个表达式(如变量)的值,当值发生变化时GDB会自动暂停:
(gdb) watch result # 监视result变量
(gdb) c # 继续执行
# 当result变化时,GDB会自动暂停并显示新旧值
应用场景:当怀疑某个变量被意外修改导致问题时,可以用watch监控。
2.5 条件断点
方式一:新增时带条件
(gdb) b 9 if i == 30 # 在第9行设置断点,仅当i==30时触发
方式二:给已有断点追加条件
(gdb) condition 2 i==30 # 给2号断点追加条件 i==30(注意没有if)
** 注意**:两种方式语法不同,不要混淆!
2.6 实战示例:定位问题
通过 set var 可以临时修改变量值来验证问题原因:
(gdb) p result # 查看result值为5050
(gdb) p flag # 查看flag值为0(异常)
(gdb) set var flag=1 # 临时修改flag为1
(gdb) n # 继续执行,验证结果是否正确
2.7 CGDB(推荐)
CGDB是GDB的增强版,支持分屏显示源代码,调试体验更好:
# CentOS安装
sudo yum install -y cgdb
# Ubuntu安装
sudo apt-get install -y cgdb
使用技巧:
- ESC键:进入代码窗口(可浏览代码)
- i键:回到GDB命令窗口


