一句话:提出在静态分析规则图中寻找有效割的算法,以少量方法复核实现软件去臃肿。
随着软件项目日益复杂,软件去臃肿受到关注。静态分析给出可达代码的粗略过近似,而基于动态执行轨迹的方法可能危及程序正确性。基于割的去臃肿只要求开发者重新考虑少量方法,就能显著减小代码体积,从而降低风险。本文提出在静态分析生成的规则图中寻找小割的思想:先引入具有合适语义的分析,再将其规则编码为有向超图,并提出一种高效寻找图中最有效单割的算法。所提操作的执行时间支持部署到交互式工具中。最后,作者表明该图模型能够暴露出值得重新考虑的方法。
As software projects grow increasingly more complex, debloating gains traction. While static analyses yield a coarse over-approximation of reachable code, approaches based on dynamic execution traces risk program correctness. By allowing the developer to reconsider only a few methods and still achieve a significant reduction in code size, cut-based debloating can minimize the risk. In this paper, we propose the idea of finding small cuts in the rule graphs produced by static analysis. After introducing an analysis with suitable semantics, we discuss how to encode its rules into a directed hypergraph. We then present an algorithm for efficiently finding the most effective single cut in the graph. The execution time of the proposed operations allows for the deployment in interactive tools. Finally, we show that our graph model is able to expose methods worthwhile to reconsider.
DOI 原文 ·
@inproceedings{paperbot8565,
title = {Finding Cuts in Static Analysis Graphs to Debloat Software},
author = {Christoph Blumschein and Fabio Niephaus and Codruţ Stancu and Christian Wimmer and Jens Lincke and Robert Hirschfeld},
booktitle = {ISSTA},
year = {2024},
doi = {10.1145/3650212.3680306}
}