概述
本文档概述 TGOSKits 当前的 VS Code 本地调试方案,重点说明它的设计目标、组件边界和平台分流思路。
准备环境
本地调试依赖 VS Code、目标架构工具链、QEMU/GDB 和项目生成的调试配置。
平台实现
本文档按文件说明当前调试方案在 .vscode 目录中的实现方式。
调试流程
VS Code 本地调试依次完成目标构建、QEMU 启动、调试器附加和会话清理。
Panic 递归保护
TGOSKits、ArceOS 和 StarryOS 的 panic/oops 递归保护用于避免异常处理再次进入带锁输出、backtrace 或 panic 主路径,降低次生故障覆盖原始故障信息的风险。
Backtrace Host 符号化
Host 端 backtrace 符号化工具读取 QEMU 或板卡输出的 raw backtrace 块,并使用同一次构建的 ELF 解析函数名和源码位置。
检查机制总览
检查是与测试并列的持续保障内核质量的机制。与测试这种事后验证方式不同,检查通常是预先建立规则,以更主动的方式提前防止或发现问题。项目开发中最常见的检查机制是 assert 断言。
锁使用约束
ax-sync 统一了内核运行路径的锁原语与 lockdep 可见性。锁类型仍需与 IRQ、抢占、睡眠、用户内存访问和 I/O 边界匹配;以下内容记录当前约束和仍存在风险的代码路径 。
Task Stack Guard Page
ArceOS task stack guard page 在越界访问时触发页故障,用于补充现有 task stack canary 的事后检查。当前实现尚未提供 Linux VMAP_STACK 风格的独立虚拟地址分配器。
might_sleep 后续计划
本文档记录 might_sleep 原子上下文检查的后续增强计划,用作逐项讨论和拆分实现任务的基础。