Debugging of Concurrent Systems Using Counterexample Analysis

  • Gianluca BarbonEmail author
  • Vincent Leroy
  • Gwen Salaün
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10522)


Model checking is an established technique for automatically verifying that a model satisfies a given temporal property. When the model violates the property, the model checker returns a counterexample, which is a sequence of actions leading to a state where the property is not satisfied. Understanding this counterexample for debugging the specification is a complicated task for several reasons: (i) the counterexample can contain hundreds of actions, (ii) the debugging task is mostly achieved manually, and (iii) the counterexample does not give any clue on the state of the system (e.g., parallelism or data expressions) when the error occurs. This paper presents a new approach that improves the usability of model checking by simplifying the comprehension of counterexamples. Our solution aims at keeping only actions in counterexamples that are relevant for debugging purposes. To do so, we first extract in the model all the counterexamples. Second, we define an analysis algorithm that identifies actions that make the behaviour skip from incorrect to correct behaviours, making these actions relevant from a debugging perspective. Our approach is fully automated by a tool that we implemented and applied on real-world case studies from various application areas for evaluation purposes.



We would like to thank Frédéric Lang and Radu Mateescu for their valuable suggestions to improve the paper.


  1. 1.
    Aho, A.V., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, and Tools. Addison-Wesley, Reading (1986)zbMATHGoogle Scholar
  2. 2.
    Baier, C., Katoen, J.: Principles of Model Checking. MIT Press, Cambridge (2008)zbMATHGoogle Scholar
  3. 3.
    Beer, A., Heidinger, S., Kühne, U., Leitner-Fischer, F., Leue, S.: Symbolic causality checking using bounded model checking. In: Fischer, B., Geldenhuys, J. (eds.) SPIN 2015. LNCS, vol. 9232, pp. 203–221. Springer, Cham (2015). CrossRefGoogle Scholar
  4. 4.
    Befrouei, M.T., Wang, C., Weissenbacher, G.: Abstraction and mining of traces to explain concurrency bugs. In: Bonakdarpour, B., Smolka, S.A. (eds.) RV 2014. LNCS, vol. 8734, pp. 162–177. Springer, Cham (2014). Google Scholar
  5. 5.
    Bekkouche, M., Collavizza, H., Rueher, M.: LocFaults: a new flow-driven and constraint-based error localization approach. In: Proceedings of SAC 2015. ACM (2015)Google Scholar
  6. 6.
    Cámara, J., Martín, J.A., Salaün, G., Canal, C., Pimentel, E.: Semi-automatic specification of behavioural service adaptation contracts. Electr. Notes Theor. Comput. Sci. 264(1), 19–34 (2010)CrossRefGoogle Scholar
  7. 7.
    Champelovier, D., Clerc, X., Garavel, H., Guerte, Y., Lang, F., McKinty, C., Powazny, V., Serwe, W., Smeding, G.: Reference Manual of the LOTOS NT to LOTOS Translator (Version 6.1). INRIA/VASY, 131 p. (2014)Google Scholar
  8. 8.
    Clarke, E.M., Grumberg, O., Peled, D.A.: Model Checking. MIT Press, Cambridge (2001)CrossRefGoogle Scholar
  9. 9.
    Fu, X., Bultan, T., Su, J.: Conversation protocols: a formalism for specification and verification of reactive electronic services. Theor. Comput. Sci. 328(1–2), 19–37 (2004)CrossRefzbMATHMathSciNetGoogle Scholar
  10. 10.
    Garavel, H., Lang, F.: SVL: a scripting language for compositional verification. In: Proceedings of FORTE 2001. IIFIP, vol. 197. Kluwer (2001)Google Scholar
  11. 11.
    Garavel, H., Lang, F., Mateescu, R., Serwe, W.: CADP 2011: a toolbox for the construction and analysis of distributed processes. STTT 15(2), 89–107 (2013)CrossRefzbMATHGoogle Scholar
  12. 12.
    Lang, F., Mateescu, R.: Partial model checking using networks of labelled transition systems and boole an equation systems. Log. Methods Comput. Sci. 9(4), 1–32 (2013)zbMATHMathSciNetGoogle Scholar
  13. 13.
    Leue, S., Befrouei, M.T.: Mining sequential patterns to explain concurrent counterexamples. In: Bartocci, E., Ramakrishnan, C.R. (eds.) SPIN 2013. LNCS, vol. 7976, pp. 264–281. Springer, Heidelberg (2013). CrossRefGoogle Scholar
  14. 14.
    Martín, J.A., Pimentel, E.: Contracts for security adaptation. J. Log. Algebraic Program. 80(3–5), 154–179 (2011)CrossRefzbMATHGoogle Scholar
  15. 15.
    Mateescu, R., Poizat, P., Salaün, G.: Adaptation of service protocols using process algebra and on-the-fly reduction techniques. IEEE Trans. Softw. Eng. 38(4), 755–777 (2012)CrossRefGoogle Scholar
  16. 16.
    Mateescu, R., Thivolle, D.: A model checking language for concurrent value-passing systems. In: Cuellar, J., Maibaum, T., Sere, K. (eds.) FM 2008. LNCS, vol. 5014, pp. 148–164. Springer, Heidelberg (2008). CrossRefGoogle Scholar
  17. 17.
    Milner, R.: Communication and Concurrency. Prentice Hall, Upper Saddle River (1989)zbMATHGoogle Scholar
  18. 18.
    Papadakis, M., Traon, Y.L.: Effective fault localization via mutation analysis: a selective mutation approach. In: Proceedings of SAC 2014. ACM (2014)Google Scholar
  19. 19.
    Park, D.: Concurrency and automata on infinite sequences. In: Deussen, P. (ed.) GI-TCS 1981. LNCS, vol. 104, pp. 167–183. Springer, Heidelberg (1981). CrossRefGoogle Scholar
  20. 20.
    Salaün, G., Bordeaux, L., Schaerf, M.: Describing and reasoning on web services using process algebra. In: Proceedings of ICWS 2004. IEEE Computer Society (2004)Google Scholar
  21. 21.
    Salaün, G., Bultan, T., Roohi, N.: Realizability of choreographies using process algebra encodings. IEEE Trans. Serv. Comput. 5(3), 290–304 (2012)CrossRefGoogle Scholar
  22. 22.
    Salaün, G., Etchevers, X., De Palma, N., Boyer, F., Coupaye, T.: Verification of a self-configuration protocol for distributed applications in the cloud. In: Cámara, J., de Lemos, R., Ghezzi, C., Lopes, A. (eds.) Assurances for Self-Adaptive Systems. LNCS, vol. 7740, pp. 60–79. Springer, Heidelberg (2013). CrossRefGoogle Scholar
  23. 23.
    Salaün, G., Ye, L.: Debugging process algebra specifications. In: D’Souza, D., Lal, A., Larsen, K.G. (eds.) VMCAI 2015. LNCS, vol. 8931, pp. 245–262. Springer, Heidelberg (2015). Google Scholar
  24. 24.
    Yan, X., Han, J., Afshar, R.: CloSpan: mining closed sequential patterns in large databases. In: Proceedings of SDM 2003. SIAM (2003)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2017

Authors and Affiliations

  1. 1.Univ. Grenoble Alpes, CNRS, Grenoble INP, Inria, LIGGrenobleFrance
  2. 2.Univ. Grenoble Alpes, CNRS, Grenoble INP, LIGGrenobleFrance

Personalised recommendations