International Journal of Networked and Distributed Computing (IJNDC) (Jun 2016)

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
Journal volume & issue
Vol. 4, no. 3

Abstract

Read online

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.

Keywords