JNuke: Efficient Dynamic Analysis for Java

  • Cyrille Artho
  • Viktor Schuppan
  • Armin Biere
  • Pascal Eugster
  • Marcel Baur
  • Boris Zweimüller
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3114)

Abstract

JNuke is a framework for verification and model checking of Java programs. It is a novel combination of run-time verification, explicit-state model checking, and counter-example exploration. Efficiency is crucial in dynamic verification. Therefore JNuke has been written from scratch in C, improving performance and memory usage by an order of magnitude compared to competing approaches and tools.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Artho, C., Havelund, K., Biere, A.: High-level data races. Journal on Software Testing, Verification & Reliability (STVR) 13(4) (2003)Google Scholar
  2. 2.
    Bruening, D.: Systematic testing of multithreaded Java programs. Master’s thesis, MIT (1999)Google Scholar
  3. 3.
    Bull, J., Smith, L., Westhead, M., Henty, D., Davey, R.: A methodology for benchmarking Java Grande applications. In: Proc. ACM Java Grande Conference (1999)Google Scholar
  4. 4.
    Corbett, J., Dwyer, M., Hatcliff, J., Pasareanu, C.: Bandera: Extracting finite-state models from Java source code. In: Proc. Intl. Conf. on Software Engineering (ICSE 2000), ACM Press, New York (2000)Google Scholar
  5. 5.
    Eugster, P.: Java VirtualMachine with rollback procedure allowing systematic and exhaustive testing of multithreaded Java programs. Master’s thesis, ETH Zürich (2003)Google Scholar
  6. 6.
    Godefroid, P.: Model checking for programming languages using VeriSoft. In: Proc. ACM Symposium on Principles of Programming Languages, POPL 1997 (1997)Google Scholar
  7. 7.
    Harrow, J.: Runtime checking of multithreaded applications with Visual Threads. In: Havelund, K., Penix, J., Visser, W. (eds.) SPIN 2000. LNCS, vol. 1885, Springer, Heidelberg (2000)CrossRefGoogle Scholar
  8. 8.
    Hastings, R., Joyce, B.: Purify: Fast detection of memory leaks and access errors. In: Proc. Winter USENIX Conf., USENIX 1992 (1992)Google Scholar
  9. 9.
    Havelund, K., Rosu̧, G.: Monitoring Java programs with Java PathExplorer. In: Proc. Run- Time Verification Workshop (RV 2001). ENTCS, vol. 55, Elsevier, Amsterdam (2001)Google Scholar
  10. 10.
    Holzmann, G.: Design and Validation of Computer Protocols. Prentice-Hall, Englewood Cliffs (1991)Google Scholar
  11. 11.
    Holzmann, G., Smith, M.: A practical method for verifying event-driven software. In: Proc. Intl. Conf. on Software Engineering (ICSE 1999). IEEE/ACM (1999)Google Scholar
  12. 12.
    Kim, M., Kannan, S., Lee, I., Sokolsky, O., Viswanathan, M.: Java-MaC: a run-time assurance tool for Java programs. In: Proc. Run-Time Verification Workshop (RV 2001). ENTCS, vol. 55, Elsevier, Amsterdam (2001)Google Scholar
  13. 13.
    Robby, M.D., Hatcliff, J.: Bogor: an extensible and highly-modular software model checking framework. In: Proc. European Software Engineering Conf., ESEC 2003 (2003)Google Scholar
  14. 14.
    Savage, S., Burrows, M., Nelson, G., Sobalvarro, P., Anderson, T.: Eraser: A dynamic data race detector for multithreaded programs. ACM Trans. on Computer Systems 15(4) (1997)Google Scholar
  15. 15.
    Schuppan, V., Baur, M., Biere, A.: JVM-independent replay in Java. In: Proc. Run-Time Verification Workshop (RV 2004). ENTCS, Elsevier, Amsterdam (2004)Google Scholar
  16. 16.
    Stärk, R., Schmid, J., Börger, E.: Java and the Java Virtual Machine. Springer, Heidelberg (2001)MATHGoogle Scholar
  17. 17.
    Visser, W., Havelund, K., Brat, G., Park, S.: Model checking programs. In: Proc. IEEE Intl. Conf. Automated Software Engineeering, ASE 2000 (2000)Google Scholar
  18. 18.
    von Praun, C., Gross, T.: Object-race detection. In: OOPSLA 2001, ACM Press, New York (2001)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Cyrille Artho
    • 1
  • Viktor Schuppan
    • 1
  • Armin Biere
    • 1
  • Pascal Eugster
    • 2
  • Marcel Baur
    • 3
  • Boris Zweimüller
    • 1
  1. 1.Computer Systems InstituteETH ZürichSwitzerland
  2. 2.Avaloq EvolutionZürichSwitzerland
  3. 3.Al Dente BrainworksZürichSwitzerland

Personalised recommendations