<!-- @when: 大型项目或复杂函数难以定位时 -->
<!-- @chain: before=debug-log.md, after=dcc-error-classification.md -->

### 8.9 二分法与隔离调试

用二分法快速缩小可疑范围，O(log N) 复杂度。

```
编译错误二分法（文件级）:
  ① 文件分为上下两半
  ② {$IFDEF DEBUG_SKIP}...{$ENDIF} 注释上半 → 编译
  ③ 错误消失→上；仍在→下
  ④ 递归直到定位到具体行

运行时崩溃二分法（代码路径级）:
  ① 确定最简触发路径
  ② 调用链中点插入 Exit/提前返回
  ③ 崩溃消失→后半段；仍在→前半段
  ④ 递归直到定位到具体函数

多模块隔离（项目级）:
  ① 临时关闭编译事件
  ② 逐个移除 DCCReference 定位缺少单元
  ③ 分批注释 uses 定位循环引用

回归定位（变更级）:
  git bisect start → bad → good → run <script>
  自动二分编译验证，定位引入问题的 commit
```

**隔离原则**：
- 每次只改变一个变量
- 确认结果后再进行下一步
- 用 `{$IFDEF}` 而非删代码（方便恢复）
