用途
该技能是 C 语言 -fbounds-safety 扩展的使用指南,用于帮助开发者将边界安全机制引入现有 C 代码库,或在已有工程中进行相关的代码修改与迁移。其核心目标是防止越界内存访问:在运行时插入自动边界检查,在编译期拒绝不安全的指针操作,并要求程序员提供边界注解,使越界访问成为确定性的陷阱,而不是可被利用的漏洞。
主要能力与覆盖范围
根据资料,该技能覆盖以下主题:
-fbounds-safety的语言模型;- 指针注解;
- 在现有 C 代码中采用 bounds-safety;
- 编译器构建相关配置;
- 运行时调试(陷阱行为、LLDB 命令、宽指针检查、观察点、崩溃日志分析、软陷阱调试);
- 编译器标志、Xcode 构建设置、软陷阱模式以及
ptrcheck.h配置。
使用方式
资料给出了明确的使用流程与要求:
- 在协助
-fbounds-safety迁移或代码修改时,先就用户代码库与目标提出澄清问题,再建议改动。 - 对于涉及多个文件或非平凡注解决策的复杂任务,先使用 plan mode 提出方案,再实施。
- 开始迁移任务时,必须完整阅读以下三份文档(通过 Read 工具):
adoption-strategies.md——在现有 C 项目中采用-fbounds-safety的工作流(包含 full 与 header-only 两种模式)。language-overview.md——语言参考:指针种类、注解及其规则。common-patterns-and-pitfalls.md——真实迁移中遇到的配方与反模式。
- 在迁移工作流中任何修改源码的步骤之前,需再次通过 Read 工具重读上述文档,除非其内容可验证地仍在当前上下文中。
按需查阅的参考资料
- 编译器标志、Xcode 构建设置、软陷阱模式与
ptrcheck.h配置:阅读build-settings.md。 - 运行时边界违规调试(陷阱行为、LLDB 命令、宽指针检查、观察点、崩溃日志分析、软陷阱调试):阅读
runtime-debugging.md。
适用场景
适用于在现有 C 项目(包含整库模式与仅头文件模式)中引入或迁移 -fbounds-safety,以及需要在编译期与运行期排查边界安全问题的开发工作。
限制
资料未提供该技能的具体平台支持范围、是否收费、价格、使用效果、安装命令或代码示例等细节,相关事实暂未提供。