Skip to main content

Directed Error Detection in C++ with the Assembly-Level Model Checker StEAM

  • Conference paper
Model Checking Software (SPIN 2004)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2989))

Included in the following conference series:

Abstract

Most approaches for model checking software are based on the generation of abstract models from source code, which may greatly reduce the search space, but may also introduce errors that are not present in the actual program.

In this paper, we propose a new model checker for the verification of native c++-programs. To allow platform independent model checking of the object code for concurrent programs, we have extended an existing virtual machine for c++ to include multi-threading and different exploration algorithms on a dynamic state description.

The error reporting capabilities and the lengths of counter-examples are improved by using heuristic estimator functions and state space compaction techniques that additionally reduce the exploration efforts.

The evaluation of four scalable simple example problems shows that our system StEAM can successfully enhance the detection of deadlocks and assertion violations.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Ball, T., Rajamani, S.K.: The Slam Project: Debugging System Software via Static Analysis. In: ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pp. 1–3 (2002)

    Google Scholar 

  2. Bosnacki, D., Dams, D., Holenderski, L.: A Heuristic for Symmetry Reductions with Scalarsets. In: International Symposium on FME: Formal Methods for Increasing Software Productivity, pp. 518–533 (2001)

    Google Scholar 

  3. Cattel, T.: Modeling and Verification of sC++ Applications. In: Steffen, B. (ed.) TACAS 1998. LNCS, vol. 1384, pp. 232–248. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  4. Clarke, E.M., Grumberg, O., Peled, D.A.: Model checking. MIT Press, Cambridge (1999)

    Google Scholar 

  5. Corbett, J., Dwyer, M., Hatcliff, J., Pasareanu, C., Robby, Laubachand, S., Zheng, H.: Extracting Finite-state Models from Java Source Code. In: International Conference on Software Engineering (ICSE), pp. 439–448 (2000)

    Google Scholar 

  6. Demartini, C., Iosif, R., Sisto, R.: dSPIN: A dynamic extension of SPIN. In: Dams, D.R., Gerth, R., Leue, S., Massink, M. (eds.) SPIN 1999. LNCS, vol. 1680, pp. 261–276. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  7. Dwyer, M., Hatcliff, J., Prasad, V., Robby: Exploiting Object Escape and Locking Information in Partial Order Reduction for Concurrent Object-Oriented Programs. To appear in Formal Methods in System Design Journal, FMSD (2004)

    Google Scholar 

  8. Edelkamp, S., Lafuente, A.L., Leue, S.: Trail-directed Model Checking. In: Stoller, S.D., Visser, W. (eds.) Electronic Notes in Theoretical Computer Science, vol. 55, Elsevier Science Publishers, Amsterdam (2001)

    Google Scholar 

  9. Edelkamp, S., Leven, P.: Directed Automated Theorem Proving. In: Baaz, M., Voronkov, A. (eds.) LPAR 2002. LNCS (LNAI), vol. 2514, pp. 145–159. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  10. Edelkamp, S., Mehler, T.: Byte Code Distance Heuristics and Trail Direction for Model Checking Java Programs. In: 2nd Workshop on Model Checking and Artificial Intelligence (MoChArt), pp. 69–76 (2003)

    Google Scholar 

  11. Godefroid, P.: Model Checking for Programming Languages using Verisoft. In: Symposium on Principles of Programming Languages, pp. 174–186 (1997)

    Google Scholar 

  12. Groce, A., Visser, W.: Model Checking Java Programs using Structural Heuristics. In: International Symposium on Software Testing and Analysis (ISSTA), pp. 12–21 (2002)

    Google Scholar 

  13. Hatcliff, J., Tkachuck, O.: The Bandera Tools for Model-checking Java Source Code: A User’s Manual. Technical report, Kansas State University (1999)

    Google Scholar 

  14. Henzinger, A., Jhala, R., Majumdar, R., Sutre, G.: Software Verification with BLAST. In: Ball, T., Rajamani, S.K. (eds.) SPIN 2003. LNCS, vol. 2648, pp. 235–239. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  15. Holzmann, G.J.: Design and Validation of Computer Protocols. Prentice-Hall, Englewood Cliffs (1991)

    Google Scholar 

  16. Holzmann, G.J.: State Compression in SPIN. In: Third Spin Workshop, Twente University, The Netherlands (1997)

    Google Scholar 

  17. Holzmann, G.J.: The Model Checker SPIN. Software Engineering 23(5), 279–295 (1997)

    Article  MathSciNet  Google Scholar 

  18. Holzmann, G.J.: Logic Verification of ANSI-C code with SPIN. In: Havelund, K., Penix, J., Visser, W. (eds.) SPIN 2000. LNCS, vol. 1885, pp. 131–147. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  19. Iosif, R.: Exploiting Heap Symmetries in Explicit-State Model Checking of Software. In: International Conference on Automated Software Engineering (ICSE), pp. 26–29 (2001)

    Google Scholar 

  20. Lluch-Lafuente, A., Leue, S., Edelkamp, S.: Partial Order Reduction in Directed Model Checking. In: Bošnački, D., Leue, S. (eds.) SPIN 2002. LNCS, vol. 2318, pp. 112–127. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  21. Mehler, T., Leven, P.: Introduction to StEAM - An Assembly-Level Software Model Checker. Technical report, University of Freiburg (2003)

    Google Scholar 

  22. Musuvathi, M., Park, D., Chou, A., Engler, D., Dill, D.: CMC: A Pragmatic Approach to Model Checking Real Code. In: Symposium on Operating Systems Design and Implementation, OSDI (2002)

    Google Scholar 

  23. Robby, M., Dwyer, B., Hatcliff, J.: Bogor: An Extensible and Highly-Modular Software Model Checking Framework. In: European Software Engineering Conference (ESEC), pp. 267–276 (2003)

    Google Scholar 

  24. Visser, W., Havelund, K., Brat, G., Park, S.: Java PathFinder - second generation of a Java model checker. In: Post-CAV Workshop on Advances in Verification, WAVe (2000)

    Google Scholar 

  25. Visser, W., Havelund, K., Brat, G., Park, S.: Model Checking Programs. In: International Conference on Automated Software Engineering (ICSE), pp. 3–12 (2000)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2004 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Leven, P., Mehler, T., Edelkamp, S. (2004). Directed Error Detection in C++ with the Assembly-Level Model Checker StEAM. In: Graf, S., Mounier, L. (eds) Model Checking Software. SPIN 2004. Lecture Notes in Computer Science, vol 2989. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24732-6_4

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-24732-6_4

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-21314-7

  • Online ISBN: 978-3-540-24732-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics