找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 4|回复: 0

DynaFix:由执行级动态信息驱动的迭代式自动化程序修复

[复制链接]

622

主题

0

回帖

1895

积分

金牌会员

积分
1895
发表于 2026-1-4 23:18:26 | 显示全部楼层 |阅读模式
摘要: 自动程序修复(APR)旨在自动生成有错误程序的正确补丁。最近利用大型语言模型(LLMs)的方法显示出潜力,但面临限制。大多数仅依赖静态分析,忽略运行时行为。一些尝试整合动态信号,但通常仅限于训练或微调,或仅在修复提示中注入一次,没有迭代使用。这未能充分捕捉程序执行。当前的迭代修复框架通常依赖于粗粒度反馈,如通过/失败结果或异常类型,并未有效利用细粒度的执行级信息。因此,模型难以模拟人类逐步调试,限制了它们在多步推理和复杂错误修复中的有效性。 为了解决这些挑战,我们提出了DynaFix,一种基于执行级动态信息驱动的APR方法,通过迭代利用运行时信息来优化修复过程。在每个修复轮次中,DynaFix捕获执行级动态信息,如变量状态、控制流路径和调用堆栈,将其转换为结构化提示,以引导LLMs生成候选补丁。如果一个补丁未通过验证,DynaFix将重新执行修改后的程序,收集新的执行信息用于下一次尝试。这种迭代循环根据更新的反馈逐步改进补丁,类似于人类开发者的逐步调试实践。我们在Defects4J v1.2和v2.0基准上评估了DynaFix。DynaFix修复了186个单功能错误,比最先进的基线提高了10%,其中包括以前未修复的38个错误。它在最多35次尝试内实现正确的补丁,将补丁搜索空间减少了70%,从而在修复复杂错误方面展现出了有效性和效率。
更新时间: 2025-12-31 05:13:34
领域: cs.SE,cs.AI

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|Octave中文网学术交流论坛 ( 黑ICP备2024030411号-2 )

GMT+8, 2026-1-13 18:31 , Processed in 0.081769 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表