用途:当错误在调用栈深处显现(例如目录错误、文件路径错误、数据库路径错误)时,沿调用链向后追溯,直到找到最初触发点,再从源头修复,而不是在症状出现处打补丁。
适用条件:错误发生在执行的深层而非入口;堆栈跟踪显示较长的调用链;不清楚无效数据来自何处;需要找出是哪个测试或代码触发了问题。
使用方式:先观察症状,再找到直接引发错误的代码,然后逐层向上追问“是谁调用了它”“传入了什么值”,直到定位原始触发点。若无法手动追溯,可在危险操作前加插桩,用 new Error().stack 打印调用链及相关上下文,测试中用 console.error() 而非可能被抑制的 logger,并用 npm test 2>&1 | grep 'DEBUG git init' 抓取输出。若需定位是哪个测试造成污染,可用配套脚本 ./find-polluter.sh '.git' 'src/**/*.test.ts',它会逐个运行测试并在首个污染处停止。
主要能力:系统性反向追踪调用链;借助堆栈插桩定位来源;找出具体触发测试;在源头修复后于各层补充校验,形成纵深防御。资料中给出的示例显示,通过源头修复与多层防御,1847 个测试通过且无污染。
限制:需要可读取调用链或可加插桩的环境;多数步骤依赖人工判断;示例中的脚本、参数与场景来自原文,未提供其他平台或语言的通用性与完整用法。具体生效条件、性能影响及适用边界暂未提供。