MLSA: A Static Bugs Analysis Tool Based on LLVM IR.

Hongliang Liang,Lei Wang,Dongyang Wu,Jiuyun Xu
DOI: https://doi.org/10.2991/ijndc.2016.4.3.1
2016-01-01
International Journal of Networked and Distributed Computing
Abstract:Program bugs may result in unexpected software error, crash or serious security attack. Static program analysis is one of the most common methods to find program bugs. In this paper we present MLSA -- a static analysis tool based on LLVM Intermediate Representation (IR), which can analyze programs written in multiple programming languages. MLSA combines symbolic execution with Z3 SMT solver to find bugs. At present, MLSA can detect some kinds of bugs, such as divide zero error, pointer overflow and dead code. Moreover, as a framework, MLSA follows the scalability and extensibility principles, which can help detect other types of bugs. Experiments show that MLSA is effective in finding bugs in real world software.
What problem does this paper attempt to address?