Finding Cuts in Static Analysis Graphs to Debloat Software

Finding Cuts in Static Analysis Graphs to Debloat Software

31 July 2024

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 could minimize the risk. In this paper, we therefore propose the idea of finding small cuts in rule graphs of static analyses. 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 heavy methods worthwhile to reconsider.


Venue : ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA)

File Name : issta24main-p124-p-85f6731c5b-78970-submitted.pdf