Skip to main content

STANSE: Bug-Finding Framework for C Programs

  • Conference paper
Mathematical and Engineering Methods in Computer Science (MEMICS 2011)

Abstract

Stanse is a free (available under the GPLv2 license) modular framework for finding bugs in C programs using static analysis. Its two main design goals are 1) ability to process large software projects like the Linux kernel and 2) extensibility with new bug-finding techniques with a minimal effort. Currently there are four bug-finding algorithms implemented within Stanse: AutomatonChecker checks properties described in an automata-based formalism, ThreadChecker detects deadlocks among multiple threads, LockChecker finds locking errors based on statistics, and ReachabilityChecker looks for unreachable code. Stanse has been tested on the Linux kernel, where it has found dozens of previously undiscovered bugs.

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 54.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 69.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. Chou, A., Chelf, B., Engler, D., Heinrich, M.: Using meta-level compilation to check FLASH protocol code. ACM SIGOPS Oper. Syst. Rev. 34(5), 59–70 (2000)

    Article  Google Scholar 

  2. Engler, D., Chelf, B., Chou, A., Hallem, S.: Checking system rules using system-specific, programmer-written compiler extensions. In: OSDI 2000, pp. 1–16 (2000)

    Google Scholar 

  3. Engler, D., Chen, D.Y., Hallem, S., Chou, A., Chelf, B.: Bugs as deviant behavior: A general approach to inferring errors in systems code. ACM SIGOPS Oper. Syst. Rev. 35(5), 57–72 (2001)

    Article  Google Scholar 

  4. Hallem, S., Chelf, B., Xie, Y., Engler, D.: A system and language for building system-specific, static analyses. In: PLDI 2002, pp. 69–82. ACM (2002)

    Google Scholar 

  5. Hovemeyer, D., Pugh, W.: Finding bugs is easy. In: OOPSLA 2004, pp. 132–136. ACM (2004)

    Google Scholar 

  6. Shapiro, M., Horwitz, S.: Fast and accurate flow-insensitive points-to analysis. In: POPL 1997, pp. 1–14. ACM (1997)

    Google Scholar 

  7. Steensgaard, B.: Points-to analysis in almost linear time. In: POPL 1996, pp. 32–41. ACM (1996)

    Google Scholar 

  8. Voung, J.W., Jhala, R., Lerner, S.: RELAY: static race detection on millions of lines of code. In: ESEC-FSE 2007, pp. 205–214. ACM (2007)

    Google Scholar 

  9. CodeSonar, http://www.grammatech.com/products/codesonar/

  10. Coverity, http://www.coverity.com/products/

  11. FindBugs, http://findbugs.sourceforge.net/

  12. Klocwork, http://www.klocwork.com/products/

  13. Smatch, http://smatch.sourceforge.net/

  14. Sparse, http://www.kernel.org/pub/software/devel/sparse/

  15. Uno, http://spinroot.com/uno/

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Obdržálek, J., Slabý, J., Trtík, M. (2012). STANSE: Bug-Finding Framework for C Programs. In: Kotásek, Z., Bouda, J., Černá, I., Sekanina, L., Vojnar, T., Antoš, D. (eds) Mathematical and Engineering Methods in Computer Science. MEMICS 2011. Lecture Notes in Computer Science, vol 7119. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-25929-6_16

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-25929-6_16

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-25928-9

  • Online ISBN: 978-3-642-25929-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics