Know Your Analysis: How Instrumentation Aids Understanding Static Analysis

被引:4
|
作者
Schubert, Philipp Dominik [1 ]
Leer, Richard [1 ]
Hermann, Ben [1 ]
Bodden, Eric [1 ,2 ]
机构
[1] Heinz Nixdorf Inst, Paderborn, Germany
[2] Fraunhofer IEM, Paderborn, Germany
关键词
Static analysis; framework; instrumentation; C/C plus;
D O I
10.1145/3315568.3329965
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The development of a high-quality data-flow analysis-one that is precise and scalable-is a challenging task. A concrete client analysis not only requires data-flow but, in addition, type-hierarchy, points-to, and call-graph information, all of which need to be obtained by wisely chosen and correctly parameterized algorithms. Therefore, many static analysis frameworks have been developed that provide analysis writers with generic data-flow solvers as well as those additional pieces of information. Such frameworks ease the development of an analysis by requiring only a description of the data-flow problem to be solved and a set of framework parameters. Yet, analysis writers often struggle when an analysis does not behave as expected on real-world code. It is usually not apparent what causes a failure due to the complex interplay of the several algorithms and the client analysis code within such frameworks. In this work, we present some of the insights we gained by instrumenting the LLVM-based static analysis framework PhASAR for C/C++ code and show the broad area of applications at which flexible instrumentation supports analysis and framework developers. We present five cases in which instrumentation gave us valuable insights to debug and improve both, the concrete analyses and the underlying PhASAR framework.
引用
收藏
页码:8 / 13
页数:6
相关论文
共 50 条