skip to main content
10.1145/2388936.2388962acmotherconferencesArticle/Chapter ViewAbstractPublication PagesjtresConference Proceedingsconference-collections
research-article

Ji.Fi: visual test and debug queries for hard real-time

Published:24 October 2012Publication History

ABSTRACT

Hard real-time systems have stringent timing and resource requirements. As such, debugging and tracing such systems often requires low-level hardware support, and online debugging is usually precluded entirely. In other areas, visual debugging has greatly improved program understanding and late cycle development times for non real-time applications. In this paper we introduce a visual test and debug framework for hard real-time Java applications built around the Jive platform and realized in the Fiji VM.

Our framework, called Ji.Fi, provides high-level debugging support over low-level execution traces. Ji.Fi provides both powerful visualizations and real-time centric temporal query support. To ensure preservation of the real-time characteristics of the application being tested and debugged, Ji.Fi leverages a real-time event log infrastructure that logs only relevant application and virtual machine level events, such as synchronization and modifications to priorities or thread state. Our performance results indicate that our logging infrastructure is suitable for hard real-time systems, as the performance impact is both uniform and quantifiable.

References

  1. BlueJ-- The interactive Java environment.Google ScholarGoogle Scholar
  2. JSR 302. Safety critical Java technology, 2007.Google ScholarGoogle Scholar
  3. Stefan Andrei, Albert M. K. Cheng, Wei-Ngan Chin, and Miahi Lupu. Systematic debugging of real-time systems based on incremental satisfiability counting. In Proceedings of the Real Time on Embedded Technology and Applications Symposium, RTAS '05, pages 519--528, Washington, DC, USA, 2005. IEEE Computer Society. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Java Platform Debugger Architecture. http://docs.oracle.com/javase/1.5.0/docs/guide/jpda/.Google ScholarGoogle Scholar
  5. Gaurav Arora and David B. Stewart. A tool to assist in fine-tuning and debugging embedded real-time systems. In Proceedings of the Workshop on Languages, Compilers, and Tools for Embedded Systems, LCTES '98, pages 83--97, London, UK, UK, 1998. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Unmesh D. Bordoloi and Samarjit Chakraborty. Performance debugging of real-time systems using multicriteria schedulability analysis. In Proceedings of the 13th IEEE Real Time and Embedded Technology and Applications Symposium, RTAS '07, pages 193--202, Washington, DC, USA, 2007. IEEE Computer Society. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Jan Chomicki and David Toman. Temporal databases. In Michael David Fisher, Dov M. Gabbay, and Lluis Vila, editors, Handbook of Temporal Reasoning in Artificial Intelligence, pages 429--467. Elsevier B. V., March 2005.Google ScholarGoogle ScholarCross RefCross Ref
  8. James H. Cross, II and T. Dean Hendrix. jGRASP: An integrated development environment with visualizations for teaching Java in CS1, CS2, and beyond. J. Comput. Small Coll., 23(2):170--172, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Wim De Pauw, David Lorenz, John Vlissides, and Mark Wegman. Execution patterns in object-oriented visualization. pages 219--234, April 1998.Google ScholarGoogle Scholar
  10. GDB: The GNU Project Debugger. http://sources.redhat.com/gdb/.Google ScholarGoogle Scholar
  11. The Java Debugger. http://docs.oracle.com/javase/1.5.0/docs/guide/jpda/jdb.html.Google ScholarGoogle Scholar
  12. Eclipse. Eclipse Test and Performance Tools Platform.Google ScholarGoogle Scholar
  13. Paul Gestwicki and Bharat Jayaraman. Methodology and architecture of JIVE. In Proceedings of the Symposium on Software visualization, SoftVis '05, pages 95--104, New York, NY, USA, 2005. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Paul V. Gestwicki and Bharat Jayaraman. Jive: java interactive visualization environment. In Conference on Object-oriented programming systems, languages, and applications, OOPSLA '04, pages 226--228, New York, NY, USA, 2004. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Simon F. Goldsmith, Robert O'Callahan, and Alex Aiken. Relational queries over program traces. In OOPSLA '05: Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pages 385--402, New York, NY, USA, 2005. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. J. B. Goodenough and L. Sha. The priority ceiling protocol: A method for minimizing the blocking of high priority Ada tasks. In IRTAW '88: Proceedings of the second international workshop on Real-time Ada issues, pages 20--31, New York, NY, USA, 1988. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. James Gosling and Greg Bollella. The Real-Time Specification for Java. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Ashish Gupta and Inderpal Singh Mumick. Materialized views. In Ashish Gupta and Iderpal Singh Mumick, editors, Maintenance of Materialized Views: Problems, Techniques, and Applications, pages 145--157. MIT Press, Cambridge, MA, USA, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Wolfgang Haberl, Markus Herrmannsdoerfer, Jan Birke, and Uwe Baumgarten. Model-level debugging of embedded real-time systems. In Proceedings of the Conference on Computer and Information Technology, CIT '10, pages 1887--1894, Washington, DC, USA, 2010. IEEE Computer Society. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. The Java Debug Interface. http://docs.oracle.com/javase/1.5.0/docs/guide/jpda/jdi/.Google ScholarGoogle Scholar
  21. Dean F. Jerding, John T. Stasko, and Thomas Ball. Visualizing interactions in program executions. pages 360--370, May 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Tomas Kalibera, Jeff Hagelberg, Filip Pizlo, Ales Plsek, Ben Titzer, and Jan Vitek. CDx: a family of real-time Java benchmarks. In Workshop on Java Technologies for Real-Time and Embedded Systems, JTRES '09, pages 41--50, New York, NY, USA, 2009. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Tomas Kalibera, Pavel Parizek, Ghaith Haddad, Gary T. Leavens, and Jan Vitek. Challenge benchmarks for verification of real-time programs. In Proceedings of the 4th ACM SIGPLAN workshop on Programming languages meets program verification, PLPV '10, pages 57--62, New York, NY, USA, 2010. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Andrew J. Ko and Brad A. Myers. Finding causes of program output with the Java Whyline. In CHI '09: Proceedings of the 27th international conference on Human factors in computing systems, pages 1569--1578, New York, NY, USA, 2009. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Danny B. Lange and Yuichi Nakamura. Object-oriented program tracing and visualization. Computer, 30(5):63--70, May 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Raimondas Lencevicius, Urs Hölzle, and Ambuj K. Singh. Query-based debugging of object-oriented programs. In Proceedings of the Conference on Object-oriented programming, systems, languages, and applications, pages 304--317, New York, NY, USA, 1997. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Demian Lessa, Jan Chomicki, and Bharat Jayaraman. Temporal data model for program debugging. In International Symposium on Database Programming Languages, August 2011.Google ScholarGoogle Scholar
  28. C. L. Liu and James W. Layland. Scheduling algorithms for multiprogramming in a hard-real-time environment. Journal of the ACM (JACM), 20:46--61, January 1973. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Filip Pizlo, Lukasz Ziarek, Ethan Blanton, Petr Maj, and Jan Vitek. High-level programming of embedded hard real-time devices. In Proceedings of the 5th European conference on Computer systems, EuroSys '10, pages 69--82, New York, NY, USA, 2010. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Filip Pizlo, Lukasz Ziarek, and Jan Vitek. Real time Java on resource-constrained platforms with Fiji VM. In Proceedings of the Workshop on Java Technologies for Real-Time and Embedded Systems, JTRES '09, pages 110--119, New York, NY, USA, 2009. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Guillaume Pothier, Éric Tanter, and José Piquer. Scalable omniscient debugging. SIGPLAN Not., 42(10):535--552, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Laakso M.-J. Kaila E. Salakoski T. Rajala, T. VILLE-- A Language-Independent Program Visualization Tool. In Raymond Lister and Simon, editors, Proceedings of the Baltic Sea Conference on Computing Education Research, volume 88. Australian Computer Society, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. L. Sha, R. Rajkumar, and J. P. Lehoczky. Priority inheritance protocols: An approach to real-time synchronization. IEEE Trans. Comput., 39(9):1175--1185, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Henrik Thane and Hans Hansson. Using deterministic replay for debugging of distributed real-time systems. In Proceedings of the 12th Euromicro conference on Real-time systems, Euromicro-RTS'00, pages 265--272, Washington, DC, USA, 2000. IEEE Computer Society. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Yui Watanabe, Takashi Ishio, Yoshiro Ito, and Katsuro Inoue. Visualizing an execution trace as a compact sequence diagram using dominance algorithms. Antwerp, Belgium, october 2008.Google ScholarGoogle Scholar
  36. Reinhard Wilhelm, Jakob Engblom, Andreas Ermedahl, Niklas Holsti, Stephan Thesing, David Whalley, Guillem Bernat, Christian Ferdinand, Reinhold Heckmann, Tulika Mitra, Frank Mueller, Isabelle Puaut, Peter Puschner, Jan Staschulat, and Per Stenström. The worst-case execution-time problem - overview of methods and survey of tools. ACM Trans. Embed. Comput. Syst., 7(3):36:1--36:53, May 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Ji.Fi: visual test and debug queries for hard real-time

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Other conferences
          JTRES '12: Proceedings of the 10th International Workshop on Java Technologies for Real-time and Embedded Systems
          October 2012
          199 pages
          ISBN:9781450316880
          DOI:10.1145/2388936

          Copyright © 2012 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 24 October 2012

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

          Acceptance Rates

          JTRES '12 Paper Acceptance Rate21of30submissions,70%Overall Acceptance Rate50of70submissions,71%

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader