Localizing Program Errors via Slicing and Reasoning

  • Authors:
  • Fei Pu;Yan Zhang

  • Affiliations:
  • -;-

  • Venue:
  • HASE '08 Proceedings of the 2008 11th IEEE High Assurance Systems Engineering Symposium
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Model-based program debugging exploits discrepancies between the program behavior anticipated by a programmer and the program's actual behavior when executed on a set of inputs. From symptoms exhibited by a failing trace, potential culprits in the program canbe localized. However, since the cause of the error is nested deeper into the code than the error itself, localizing errors and correcting the errors are most time consuming hard work. The error trace produced by a model checker may contain more information than it appears. Thus, counter examples can be enough and are indicative for the cause of violation of the property. We present an assumption-based approach to localize the cause of a property violation using reasoning with constraints. In order to reduce the time consuming for error localizing, we first use dynamic program slicing to localize several statements to account for the violation of property. Assumption among these statements is then made to point out which statement(s) is (are) faulty. Some constraints will be introduced from the properties which are model checked for the program. A calculus of reasoning with these constraints is processed under the assumption along a counterexample. If the result may be consistent, the assumption is true (we can localize errors in those statements which the assumption suppose them to be faulty), otherwise, the assumption is wrong and another assumption should be made. Some examples support the applicability and effectiveness of our approach.