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.

Sat 22 Jun

09:15 - 11:00: SOAP - Performance and Optimizations for Program Analysis Tools at 106A
Chair(s): Neville GrechUniversity of Athens
SOAP-2019-papers09:15 - 09:35
SOAP-2019-papers09:35 - 09:55
Philipp Dominik SchubertHeinz Nixdorf Institut, Paderborn University, Richard LeerHeinz Nixdorf Institut, Paderborn University, Ben HermannPaderborn University, Eric BoddenHeinz Nixdorf Institut, Paderborn University and Fraunhofer IEM
Pre-print Media Attached
SOAP-2019-papers09:55 - 10:15
Lawton Nichols, Mehmet EmreUniversity of California, Santa Barbara, Ben HardekopfUC Santa Barbara
SOAP-2019-papers10:15 - 11:35
SOAP-2019-papers10:35 - 11:00