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.
- 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 ScholarDigital Library
- Apache tomcat. project home page at http://jakarta.apache.org/tomcat/.Google Scholar
- 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 ScholarCross Ref
- P. C. Bates. Debugging heterogeneous distributed systems using event-based models of behavior. ACM Transactions on Computer Systems, 13(1), 1995. Google ScholarDigital Library
- 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 ScholarDigital Library
- Eclipse. Project page at http://www.eclipse.org/.Google Scholar
- Eclipse technology - EMF project. Project page at http://www.eclipse.org/emf/.Google Scholar
- 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 ScholarDigital Library
- 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 Scholar
- G. S. Goldszmidt, S. Yemini, and S. Katz. High-level language debugging for concurrent programs. ACM Transactions on Computer Systems, 8(1), 1990. Google ScholarDigital Library
- 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 ScholarDigital Library
- Eclipse technology - Hyades project. Project page at http://www.eclipse.org/hyades/.Google Scholar
- Java 2 Platform, Standard Edition, v 1.4.2 API Specification. http://java.sun.com/j2se/1.4.2/docs/api/.Google Scholar
- 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 ScholarDigital Library
- M. Kim. Information Extraction for Run-time Formal Analysis. Ph.D. thesis, CIS Dept., University of Pennsylvania, 2001. Google ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Specjvm98 benchmarks. Information available at http://www.specbench.org/osg/jvm98/.Google Scholar
- 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 ScholarDigital Library
- 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 Scholar
Index Terms
- Relational queries over program traces
Recommendations
Relational queries over program traces
Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming systems languages and applicationsInstrumenting 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 ...
A Theory of Translation From Relational Queries to Hierarchical Queries
In a heterogeneous database system, a query for one type of database system (i.e., a source query) may have to be translated to an equivalent query (or queries) for execution in a different type of database system (i.e., a target query). Usually, for a ...
Graph-based synopses for relational selectivity estimation
SIGMOD '06: Proceedings of the 2006 ACM SIGMOD international conference on Management of dataThis paper introduces the Tuple Graph (TUG) synopses, a new class of data summaries that enable accurate selectivity estimates for complex relational queries. The proposed summarization framework adopts a "semi-structured" view of the relational ...
Comments