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

Relational queries over program traces

Published: 12 October 2005 Publication 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.
[2]
Apache tomcat. project home page at http://jakarta.apache.org/tomcat/.
[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.
[4]
P. C. Bates. Debugging heterogeneous distributed systems using event-based models of behavior. ACM Transactions on Computer Systems, 13(1), 1995.
[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.
[6]
Eclipse. Project page at http://www.eclipse.org/.
[7]
Eclipse technology - EMF project. Project page at http://www.eclipse.org/emf/.
[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.
[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.
[10]
G. S. Goldszmidt, S. Yemini, and S. Katz. High-level language debugging for concurrent programs. ACM Transactions on Computer Systems, 8(1), 1990.
[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.
[12]
Eclipse technology - Hyades project. Project page at http://www.eclipse.org/hyades/.
[13]
Java 2 Platform, Standard Edition, v 1.4.2 API Specification. http://java.sun.com/j2se/1.4.2/docs/api/.
[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.
[15]
M. Kim. Information Extraction for Run-time Formal Analysis. Ph.D. thesis, CIS Dept., University of Pennsylvania, 2001.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[26]
Specjvm98 benchmarks. Information available at http://www.specbench.org/osg/jvm98/.
[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.
[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.

Cited By

View all
  • (2021)CrySL: An Extensible Approach to Validating the Correct Usage of Cryptographic APIsIEEE Transactions on Software Engineering10.1109/TSE.2019.294891047:11(2382-2400)Online publication date: 1-Nov-2021
  • (2020)Internal Evaluation of Unsupervised Outlier DetectionACM Transactions on Knowledge Discovery from Data10.1145/339405314:4(1-42)Online publication date: 26-Jun-2020
  • (2020)Silver TapeProceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies10.1145/33810134:1(1-17)Online publication date: 18-Mar-2020
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

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
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 12 October 2005

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. PTQL
  2. partiqle
  3. program trace query language
  4. relational

Qualifiers

  • Article

Conference

OOPSLA05
Sponsor:

Acceptance Rates

Overall Acceptance Rate 268 of 1,244 submissions, 22%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)17
  • Downloads (Last 6 weeks)4
Reflects downloads up to 09 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2021)CrySL: An Extensible Approach to Validating the Correct Usage of Cryptographic APIsIEEE Transactions on Software Engineering10.1109/TSE.2019.294891047:11(2382-2400)Online publication date: 1-Nov-2021
  • (2020)Internal Evaluation of Unsupervised Outlier DetectionACM Transactions on Knowledge Discovery from Data10.1145/339405314:4(1-42)Online publication date: 26-Jun-2020
  • (2020)Silver TapeProceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies10.1145/33810134:1(1-17)Online publication date: 18-Mar-2020
  • (2020)SmokingOppProceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies10.1145/33809874:1(1-26)Online publication date: 14-Sep-2020
  • (2019)Sindarin: a versatile scripting API for the Pharo debuggerProceedings of the 15th ACM SIGPLAN International Symposium on Dynamic Languages10.1145/3359619.3359745(67-79)Online publication date: 20-Oct-2019
  • (2019)You can't debug what you can't seeProceedings of the Workshop on Hot Topics in Operating Systems10.1145/3317550.3321428(163-169)Online publication date: 13-May-2019
  • (2018)Framework for Rapid Performance Estimation of Embedded Soft Core ProcessorsACM Transactions on Reconfigurable Technology and Systems10.1145/319580111:2(1-21)Online publication date: 26-Jul-2018
  • (2018)Live interactive queries to a software application's memory profileIET Software10.1049/iet-sen.2018.5114Online publication date: 18-Sep-2018
  • (2017)How did the failure come to be?Proceedings of the 2nd ACM SIGPLAN International Workshop on Comprehension of Complex Systems10.1145/3141842.3141845(13-18)Online publication date: 23-Oct-2017
  • (2017)DemoMatch: API discovery from demonstrationsACM SIGPLAN Notices10.1145/3140587.306238652:6(64-78)Online publication date: 14-Jun-2017
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media