Git GDB/CGDB调试器

Git版本控制器与GDB/CGDB调试器学习总结


一、Git版本控制器

1.1 安装Git

bash 复制代码
yum install git
git --version   # 查看版本

1.2 在GitHub创建项目

  1. 登录GitHub,点击左下方的 New repository 按钮
  2. 输入项目名称,校验通过后点击 Create repository
  3. 在创建好的项目页面中复制项目链接(HTTPS或SSH)

1.3 下载项目到本地

bash 复制代码
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 首次使用配置

bash 复制代码
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 选项
bash 复制代码
# 默认模式(不支持调试)
gcc mycmd.c -o mycmd

# debug模式(支持调试)
gcc mycmd.c -o mycmd -g

# 验证是否包含调试信息
file mycmd   # 会显示 "with debug_info"

2.2 GDB基本使用

操作 命令
启动调试 gdb binFile
退出调试 ctrl+dquit

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会自动暂停:

bash 复制代码
(gdb) watch result   # 监视result变量
(gdb) c              # 继续执行
# 当result变化时,GDB会自动暂停并显示新旧值

应用场景:当怀疑某个变量被意外修改导致问题时,可以用watch监控。

2.5 条件断点

方式一:新增时带条件
bash 复制代码
(gdb) b 9 if i == 30    # 在第9行设置断点,仅当i==30时触发
方式二:给已有断点追加条件
bash 复制代码
(gdb) condition 2 i==30   # 给2号断点追加条件 i==30(注意没有if)

** 注意**:两种方式语法不同,不要混淆!

2.6 实战示例:定位问题

通过 set var 可以临时修改变量值来验证问题原因:

bash 复制代码
(gdb) p result   # 查看result值为5050
(gdb) p flag     # 查看flag值为0(异常)
(gdb) set var flag=1   # 临时修改flag为1
(gdb) n          # 继续执行,验证结果是否正确

2.7 CGDB(推荐)

CGDB是GDB的增强版,支持分屏显示源代码,调试体验更好:

bash 复制代码
# CentOS安装
sudo yum install -y cgdb

# Ubuntu安装
sudo apt-get install -y cgdb

使用技巧

  • ESC键:进入代码窗口(可浏览代码)
  • i键:回到GDB命令窗口
相关推荐
青禾8374 小时前
Git 与 SVN 完全指南:从集中式到分布式的版本控制
分布式·git·svn
2301_800954994 小时前
Git 版本控制核心概念详解:从集中式到分布式
分布式·git
Draw Stars14 小时前
Git BASH安装教程
开发语言·git·bash
Akiyama_Mio-Kon14 小时前
2026 最新:Dify 本地 Docker 部署完整教程(Windows + Git Bash)
windows·git·docker
福如意如我心意19 小时前
Git Worktree开发指南
git
Patrick_Wilson1 天前
为什么gitlab的MR会默认有一个merge commit
前端·git·gitlab
是乐乐啊呀1 天前
版本控制 GIT 和 SVN
git·svn
夜鸣笙笙1 天前
Git详细安装流程
git
瑞码空间2 天前
git知识点黄金笔记
笔记·git·elasticsearch
----云烟----2 天前
Git 提交忽略某些文件方法
git