展开本页目录
开始前准备什么
- 下载练习包,先阅读 README 中的依赖和运行范围。
- 使用独立练习目录;starter 是待完成任务,reference 是作者参考实现。
- 账号型功能须在自己的授权环境执行;本题不要求提供真实凭据。
- 编译原生负例
- 建立隔离会话
- 创建真实目标
- 设置函数断点
- 读取局部变量
- 修复金额算法
- 核对证据等级
1. 编译原生负例
以-g -O0编译1500克计费函数。真实坏程序输出450分,修复参考输出675分,不能仅把printf改成常量。
2. 建立隔离会话
为CLI-Anything设置独立session-file,路径需足够短以免超过macOS Unix socket限制。不要共享其他调试器会话状态。
本题本地命令
python run.py3. 创建真实目标
执行target create并检查resolved target。本机此步在Apple LLDB原生崩溃,报告明确保留失败,不把No target当作有效调试结果。
4. 设置函数断点
在可用LLDB环境对charge设置断点,确认断点有可解析位置。pending断点不说明程序实际停在目标函数。
5. 读取局部变量
启动后应先读取grams,再单步至kilos赋值后查看整数除法损失。本文未拿到这份原生局部变量记录,读者须在自己的环境验证。
6. 修复金额算法
参考实现按克计算分值并在输出边界取整,1500克得到675分。继续用1000克、0克和负值任务确认业务输入边界。
7. 核对证据等级
交付源代码、真实进程输出和失败会话;执行成功的clang结果不能冒充LLDB成功。修好本机调试工具后再补原生locals记录。
怎样确认已经完成
- 原生LLDB后端确实停住
- 修复触发值正确
- 不声称暂不支持的高级watchpoint
- 已真实clang编译并运行坏/修复C程序;本机Apple LLDB在target create原生崩溃,CLI-Anything会话未成功读取局部变量,未伪造断点输出。
常见问题
AI 能直接打断点读取 C 程序里的变量吗?
先让Agent设置真实函数断点,确认进程停住后读取frame locals,再对照源代码。本机LLDB创建目标崩溃,本文没有声称已成功读到变量。
CLI-Anything 调试结果怎么确认来自真实 LLDB?
不是。必须检查断点是否resolved、进程实际停止位置和局部变量;本题No target属于失败,只有C程序前后输出已实际验证。
哪些功能已经实际执行?
已真实clang编译并运行坏/修复C程序;本机Apple LLDB在target create原生崩溃,CLI-Anything会话未成功读取局部变量,未伪造断点输出。



