一句话:提出 ddmax,无需程序分析即可自动定位并修复输入数据故障,最大化可处理数据子集。
论文关注程序无法处理输入时,故障可能来自输入数据本身(如数据损坏),而非程序代码。作者提出通用算法 ddmax,自动识别输入中阻碍处理的部分,并在无需程序分析的情况下最大化仍可被程序处理的输入子集,从而尽可能恢复和修复有价值的数据。原失败输入与最大化后通过输入之间的差异,即无法处理的输入片段。评估中 ddmax 对约 69% 的输入文件完成修复,恢复约 78% 的数据,每个输入耗时约一分钟;据作者所知,这是首个无需程序分析即可修复输入数据故障的方法。
When a program fails to process an input, it need not be the program code that is at fault. It can also be that the input data is faulty, for instance as result of data corruption. To get the data processed, one then has to debug the input data---that is, (1) identify which parts of the input data prevent processing, and (2) recover as much of the (valuable) input data as possible. In this paper, we present a general-purpose algorithm called ddmax that addresses these problems automatically. Through experiments, ddmax maximizes the subset of the input that can still be processed by the program, thus recovering and repairing as much data as possible; the difference between the original failing input and the "maximized" passing input includes all input fragments that could not be processed. To the best of our knowledge, ddmax is the first approach that fixes faults in the input data without requiring program analysis. In our evaluation, ddmax repaired about 69% of input files and recovered about 78% of data within one minute per input.
DOI 原文 ·
@inproceedings{paperbot5597,
title = {Debugging inputs},
author = {Lukas Kirschner and Ezekiel Soremekun and Andreas Zeller},
booktitle = {ICSE},
year = {2020},
doi = {10.1145/3377811.3380329}
}