Chapter

Formal Verification of Object-Oriented Software

Volume 7421 of the series Lecture Notes in Computer Science pp 123-141

Automated Detection of Non-termination and NullPointerExceptions for Java Bytecode

  • Marc BrockschmidtAffiliated withLuFG Informatik 2, RWTH Aachen University
  • , Thomas StröderAffiliated withLuFG Informatik 2, RWTH Aachen University
  • , Carsten OttoAffiliated withLuFG Informatik 2, RWTH Aachen University
  • , Jürgen GieslAffiliated withLuFG Informatik 2, RWTH Aachen University

* Final gross prices may vary according to local VAT.

Get Access

Abstract

Recently, we developed an approach for automated termination proofs of Java Bytecode (JBC), which is based on constructing and analyzing termination graphs. These graphs represent all possible program executions in a finite way. In this paper, we show that this approach can also be used to detect non-termination or NullPointerExceptions. Our approach automatically generates witnesses, i.e., calling the program with these witness arguments indeed leads to non-termination resp. to a NullPointerException. Thus, we never obtain “false positives”. We implemented our results in the termination prover AProVE and provide experimental evidence for the power of our approach.