skip to main content
10.1145/1094811.1094841acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

Relational queries over program traces

Published:12 October 2005Publication History

ABSTRACT

Instrumenting programs with code to monitor runtime behavior is a common technique for profiling and debugging. In practice, instrumentation is either inserted manually by programmers, or automatically by specialized tools that monitor particular properties. We propose Program Trace Query Language (PTQL), a language based on relational queries over program traces, in which programmers can write expressive, declarative queries about program behavior. We also describe our compiler, Partiqle. Given a PTQL query and a Java program, Partiqle instruments the program to execute the query on-line. We apply several PTQL queries to a set of benchmark programs, including the Apache Tomcat Web server. Our queries reveal significant performance bugs in the jack SpecJVM98 benchmark, in Tomcat, and in the IBM Java class library, as well as some correct though uncomfortably subtle code in the Xerces XML parser. We present performance measurements demonstrating that our prototype system has usable performance.

References

  1. C. Allen, P. Avgustinov, A. S. Christensen, L. Hendren, S. Kuzins, O. Lhoták, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble. Adding trace matching with free variables to AspectJ. In Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Apache tomcat. project home page at http://jakarta.apache.org/tomcat/.Google ScholarGoogle Scholar
  3. H. Barringer, A. Goldberg, K. Havelund, and K. Sen. Rule-based runtime verification. In Proceedings of the 4th International Workshop on Runtime Verification (RV'04), 2004.Google ScholarGoogle ScholarCross RefCross Ref
  4. P. C. Bates. Debugging heterogeneous distributed systems using event-based models of behavior. ACM Transactions on Computer Systems, 13(1), 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. T. Clark, J. Warmer, and B. Schmidt. Object Modeling With the OCL: The Rationale Behind the Object Constraint Language. LNCS 2263. Spring-Verlag, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Eclipse. Project page at http://www.eclipse.org/.Google ScholarGoogle Scholar
  7. Eclipse technology - EMF project. Project page at http://www.eclipse.org/emf/.Google ScholarGoogle Scholar
  8. M. D. Ernst. Dynamically Discovering Likely Program Invariants. Ph.D. thesis, University of Washington Department of Computer Science and Engineering, Seattle, Washington, Aug. 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. B. Finkbeiner, S. Sankaranarayanan, and H. Sipma. Collecting statistics over runtime executions. In Proceedings of the 2nd International Workshop on Runtime Verification (RV'02), Electronic Notes in Theoretical Computer Science, Elsevier Science, volume 70, 2002.Google ScholarGoogle Scholar
  10. G. S. Goldszmidt, S. Yemini, and S. Katz. High-level language debugging for concurrent programs. ACM Transactions on Computer Systems, 8(1), 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. S. Hangal and M. S. Lam. Tracking down software bugs using automatic anomaly detection. In Proceedings of the International Conference on Software Engineering, May 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Eclipse technology - Hyades project. Project page at http://www.eclipse.org/hyades/.Google ScholarGoogle Scholar
  13. Java 2 Platform, Standard Edition, v 1.4.2 API Specification. http://java.sun.com/j2se/1.4.2/docs/api/.Google ScholarGoogle Scholar
  14. G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. An overview of AspectJ. Lecture Notes in Computer Science, 2072:327--355, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. M. Kim. Information Extraction for Run-time Formal Analysis. Ph.D. thesis, CIS Dept., University of Pennsylvania, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. I. Lee, S. Kannan, M. Kim, O. Sokolsky, and M. Viswanathan. Runtime assurance based on formal specifications. In In Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications, 1999.Google ScholarGoogle Scholar
  17. R. Lencevicius, U. Hölzle, and A. K. Singh. Query-based debugging of object-oriented programs. In OOPSLA '97: Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pages 304--317, New York, NY, USA, 1997. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Y. Liao. An Automatic Programming Approach to High Level Program Monitoring and Measuring. Ph.D. thesis, Dept. Computer Science, University of Southern California, Los Angeles, CA., 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Y. Liao and D. Cohen. A specificational approach to high level program monitoring and measuring. IEEE Transactions On Software Engineering, 18(11):969--978, November 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. B. Liblit, A. Aiken, A. X. Zheng, and M. I. Jordan. Bug isolation via remote program sampling. In Proceedings of the ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation, San Diego, California, June 9--11 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. B. Liblit, M. Naik, A. X. Zheng, A. Aiken, and M. I. Jordan. Scalable statistical bug isolation. In Proceedings of the ACM SIGPLAN 2005 Conference on Programming Language Design and Implementation, Chicago, Illinois, June 12--15 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. D. C. Luckham. Rapide: A language and toolset for simulation of distributed systems by partial orderings of events. In POMIV '96: Proceedings of the DIMACS workshop on Partial order methods in verification, pages 329--357, New York, NY, USA, 1997. AMS Press, Inc. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. D. Marinov and R. O'Callahan. Object equality profiling. In Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications, Anaheim, CA, Oct. 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. M. Martin, B. Livshits, and M. S. Lam. Finding application errors and security flaws using PQL: a program query language. In Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. K. Ostermann, M. Mezini, and C. Bockisch. Expressive pointcuts for increased modularity. In European Conference on Object-Oriented Programming (ECOOP), Springer LNCS, 2005, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Specjvm98 benchmarks. Information available at http://www.specbench.org/osg/jvm98/.Google ScholarGoogle Scholar
  27. R. J. Walker and K. Viggers. Implementing protocols via declarative event patterns. In SIGSOFT '04/FSE-12: Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering, pages 159--169, New York, NY, USA, 2004. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. WebSphere application server development best practices for performance and scalability. White paper available from http://www-3.ibm.com/software/webservers/appserv/ws_bestpractices.pdf, Sept. 2000.Google ScholarGoogle Scholar

Index Terms

  1. Relational queries over program traces

      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 Conferences
        OOPSLA '05: Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
        October 2005
        562 pages
        ISBN:1595930310
        DOI:10.1145/1094811
        • cover image ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 40, Issue 10
          Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming systems languages and applications
          October 2005
          531 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/1103845
          Issue’s Table of Contents

        Copyright © 2005 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: 12 October 2005

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • Article

        Acceptance Rates

        Overall Acceptance Rate268of1,244submissions,22%

        Upcoming Conference

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader