返回
EffFix: Efficient and Effective Repair of Pointer Manipulating Programs
DOI:10.1145/3705310.png)
摘要
En 中文
本文介绍EffFix,一种应用新颖静态分析驱动的自动化程序修复(APR)技术来修复内存错误的工具。APR工具通常依赖给定的测试套件来指导修复过程。除了需要提供测试基准外,这种依赖也是导致过拟合问题的主要原因之一。基于静态分析的APR技术虽然规避了这些问题,但也引入了新的挑战,如正确性、可扩展性和泛化性。本研究展示了我们如何通过利用静态分析(特别是错误分离逻辑(ISL))来指导修复,从而克服这些挑战,并在大规模范围内实现正确的内存错误修复。这是首次使用ISL的修复方法。我们的关键见解在于,静态分析用于检测错误的抽象域也包含推导正确补丁的关键信息。我们提出的方法通过检查基于ISL静态分析(特别是Pulse分析器)的反馈,评估补丁接近修复错误的程度,从而学习什么是理想的补丁,并将此信息转化为上下文无关文法的概率分布。这种修复方法是通用的,其学习策略允许在不依赖常用补丁模板的情况下寻找补丁。此外,为了实现高效的程序修复,我们并未专注于减少补丁搜索空间的经验法则,而是通过根据补丁对符号堆的影响创建等价补丁类,使修复具有可扩展性。随后,我们仅对每个补丁等价类进行一次候选补丁验证。这使得EffFix能够高效地发现高质量的修复方案,即使在存在大量候选补丁的情况下。实验评估针对OpenSSL、Linux Kernel、swoole等中大规模真实世界内存错误的修复,展示了EffFix在自动从大规模搜索空间生成修复方案方面的效率和有效性。具体而言,在所考虑的数据集中,EffFix对内存泄漏错误的修复比率为66%,对空指针解引用错误的修复比率为83%。
Keyword:
Automated Program Repair
Incorrectness Separation Logic
Probabilistic Context Free Grammars
期刊
A
IF:
6.2
论文数:
1.2K
被引数:
3.4K
机构
引用论文
Siderophile and Chalcophile Metal Variations in Flood Basalts from the Siberian Trap, Noril'sk Region: Implications for the Origin of the Ni-Cu-PGE Sulfide Ores来自西伯利亚陷阱,诺里尔斯克地区的洪水玄武岩中的嗜铁性和亲硫性金属变化: 对ni-cu-pge硫化矿石起源的影响

