大模型应用
在 C 代码中采用或调试 -fbounds-safety…
当你需要阅读、评审、对比、调试或改造采用(或准备采用)-fbounds-safety 的 C 代码时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
在 C 代码中采用或调试 -fbound特定
解决思路
- 在帮助采用 -fbounds-safety 或修改代码前,先向用户询问其代码库和目标相关的澄清问题。
- 对于涉及多文件或非平凡注解决策的复杂任务,先使用 plan mode 提出方案再实施。
- 在开始采用任务时,必须通过 Read 工具完整阅读三份文档:references/adoption-strategies.md(在现有 C 项目中采用 -fbounds-safety 的工作流,含 full 与 header-only 模式)、references/language-overview.md(语言参考:指针种类、注解及其规则)、references/common-patterns-and-pitfalls.md(真实采用中遇到的配方与反模式)。
- 在采用工作流中任何修改源码的步骤之前,除非这些文档内容可验证地仍新鲜存在于当前上下文中,否则必须再次通过 Read 工具重读上述三份文档。
- 按需阅读其他参考:编译器标志、Xcode 构建设置、soft trap 模式与 ptrcheck.h 配置见 references/build-settings.md;运行时调试边界违规(陷阱行为、LLDB 命令、wide pointer 检查、watchpoint、崩溃日志分析、soft trap 调试)见 references/runtime-debugging.md。
- 识别代码中的 Bounds 注解语法:__counted_by、__counted_by_or_null、__sized_by、__sized_by_or_null、__ended_by、__single、__indexable、__bidi_indexable、__unsafe_indexable、__null_terminated、__terminated_by。
- 识别辅助函数:__unsafe_forge_bidi_indexable、__unsafe_forge_single、__null_terminated_to_indexable、__unsafe_null_terminated_to_indexable、__unsafe_null_terminated_from_indexable。
- 识别其他宏(如 __ptrcheck_abi_assume_single)以及对 "ptrcheck.h" 的 include。
适用边界 · 注意事项
- 尚未确认用户代码库现状与目标时,不要直接建议或实施注解改动。
- 未完整阅读三份必读文档(或在修改源码前未重读)时,不要进行源码修改。
- 不适用于未采用且不打算采用 -fbounds-safety 的普通 C 代码分析。