论文
超越崩溃补丁:Linux 内核修复的补丁演变
Beyond Crash-to-Patch: Patch Evolution for Linux Kernel Repair
摘要
Linux 内核错误修复通常被视为从崩溃报告到代码补丁的直接映射。然而,实际上,内核修复在接受之前会在邮件列表上进行迭代修订,并根据审阅者的反馈来确定正确性、并发处理和 API 合规性。这种迭代细化过程编码了现有自动化方法忽视的有价值的修复知识。我们对内核补丁演变进行了大规模研究,重建了 6946 个与 syzbot 相关的错误修复生命周期,这些生命周期连接了崩溃报告、重现器、邮件列表讨论、修订历史和合并修复。我们的分析证实,接受的修复通常是非本地的,并且受到错误报告中不存在的审阅者强制约束的约束。基于这些见解,我们开发了 PatchAdvisor,这是一个修复框架,它将基于检索的内存与微调的诊断顾问集成在一起,以指导 编码智能体 实现与审阅者一致的补丁。对暂时保留的 syzbot 案例的评估表明,与无引导和仅检索的基线相比,利用补丁演化历史可以在审阅者对齐的细化信号和端到端修复质量方面产生可测量的收益。