本教程将一步步教你如何使用 GDB 调试 CCOS 操作系统内核。
-
- 安装必要工具
- Debug 模式构建
- 验证构建产物
-
- 使用 debug.sh 脚本
- 理解启动流程
-
- target remote 命令
- 理解初始状态
-
- 在地址处设置断点
- 在函数处设置断点
- 管理断点
-
- continue 命令
- 命中断点
- 进入 C 代码
-
- next/step 命令
- 汇编级单步
-
- print 命令
- 检查内存
-
- info registers
- 常用寄存器说明
-
- backtrace 命令
- 切换栈帧
-
- disassemble 命令
- 查看汇编代码
-
- 正确退出流程
- 清理资源
-
- 条件断点
- 观察点
- TUI 模式
-
- 故障排除
# 1. 构建
cmake -DCMAKE_BUILD_TYPE=Debug -B build
cmake --build build
# 2. 启动调试
./scripts/debug.sh
# 3. 在 GDB 中
target remote :1234
b *0x10000
c
b kernel_main
c| 命令 | 缩写 | 说明 |
|---|---|---|
target remote :1234 |
- | 连接到 QEMU |
break |
b |
设置断点 |
continue |
c |
继续执行 |
next |
n |
下一行(不进入函数) |
step |
s |
单步(进入函数) |
nexti |
ni |
下一条指令 |
stepi |
si |
单步指令 |
print |
p |
打印变量 |
info registers |
- | 显示寄存器 |
backtrace |
bt |
显示调用栈 |
disassemble |
- | 反汇编 |
quit |
q |
退出 |
- GDB 官方文档
- OSDev Wiki - GDB
- QEMU 文档 - Debugging with GDB