A static analysis tool with optimizations for reachability determination
Abstract
To reduce the false positives of static analysis, many tools collect path constraints and integrate SMT solvers to filter unreachable execution paths. However, the accumulated calling and computing of SMT solvers are time and resource consuming. This paper presents TsmartLW, an alternate static analysis tool in which we implement a path constraint solving engine to speed up reachability determination. Within the engine, typical types of constraint-patterns are firstly defined based on an empirical study of a large number of code repositories. For each pattern, a constraint solving algorithm is designed and implemented. For each program, the engine predicts the most suitable strategy and then applies the strategy to solve path constraints. The experimental results on some well-known benchmarks and real-world applications show that TsmartLW is faster than some state-of-the-art static analysis tools. For example, it is 1.32× faster than CPAchecker and our engine is 369× faster than SMT solvers in solving path constraints. The demo video is available at https://www.youtube.com/watch?v=5c3ARhFclHA&t=2s.
BibTeX
@inproceedings{Wang-al:ASE17,
author = {Yuexing Wang and
Min Zhou and
Yu Jiang and
Xiaoyu Song and
Ming Gu and
Jiaguang Sun},
title = {A static analysis tool with optimizations for reachability determination},
booktitle = {ASE},
pages = {925--930},
publisher = {{IEEE} Computer Society},
year = {2017},
}