Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/2509136.2509543acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Interacting with dead objects

Published: 29 October 2013 Publication History

Abstract

Debugging and analyzing a snapshot of a crashed program's memory is far more difficult than working with a live program, because debuggers can no longer execute code to help make sense of the program state. We present an architecture that supports the restricted execution of ordinary code starting from the snapshot, as if the dead objects within it had been restored, but without access to their original external environment. We demonstrate the feasibility of this approach via an implementation for Java that does not require a custom virtual machine, show that it performs competitively with live execution, and use it to diagnose an unresolved memory leak in a mature mainstream application.

References

[1]
Clozure cl documentation - 4.9. saving applications. http://ccl.clozure.com/manual/chapter4.9.html#Saving-Applications.
[2]
Eclipse memory analyzer open source project. http://www.eclipse.org/mat/.
[3]
B. Alpern, S. Augart, S. Blackburn, M. Butrico, A. Cocchi, P. Cheng, J. Dolby, S. Fink, D. Grove, M. Hind, et al. The jikes research virtual machine project: building an open-source research community. phIBM Systems Journal, 44 (2): 399--417, 2005.
[4]
T. Austin, T. Disney, and C. Flanagan. Virtual values for language extension. In phOOPSLA, pages 921--938. 2011.
[5]
G. Bracha and D. Ungar. Mirrors: design principles for meta-level facilities of object-oriented programming languages. In phOOPSLA, pages 331--344. ACM, 2004.
[6]
E. Bruneton, R. Lenglet, and T. Coupaye. ASM: a code manipulation tool to implement adaptable systems. In phAdaptable and extensible component systems, 2002.
[7]
P. Cousot and R. Cousot. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In phPOPL, pages 238--252, 1977.
[8]
M. Factor, A. Schuster, and K. Shagin. Instrumentation of standard libraries in object-oriented languages: the twin class hierarchy approach. In phOOPSLA, pages 288--300, 2004.
[9]
O. Gruber, B. Hargrave, J. McAffer, P. Rapicault, and T. Watson. The eclipse 3.0 platform: adopting osgi technology. phIBM Systems Journal, 44 (2): 289--299, 2005.
[10]
J. Huang and C. Zhang. Lean: simplifying concurrency bug reproduction via replay-supported execution reduction. In phOOPSLA, pages 451--466, 2012.
[11]
J. Huang, P. Liu, and C. Zhang. LEAP: lightweight deterministic multi-processor replay of concurrent java programs. In phFSE, pages 207--216, 2010.
[12]
D. Kozen and M. Stillerman. Eager class initialization for java. In phFTRTFT, pages 71--80, 2002.
[13]
D. H. Lorenz and J. Vlissides. Pluggable reflection: decoupling meta-interface and implementation. In phICSE, pages 3-- 13, May 2003.
[14]
E. K. Maxwell, G. Back, and N. Ramakrishnan. Diagnosing memory leaks using graph mining on heap dumps. In phKDD, pages 115--124, 2010.
[15]
S. Mostinckx, T. Van Cutsem, S. Timbermont, and E. Tanter. Mirages: Behavioral intercession in a mirror-based architecture. In phDLS, pages 89--100, 2007.
[16]
Oracle. Java platform debugger architecture. http://docs.oracle.com/javase/7/docs/technotes/guides/jpda/index.html.
[17]
G. Pothier and É. Tanter. Summarized trace indexing and querying for scalable back-in-time debugging. In phECOOP, pages 558--582, 2011.
[18]
G. Xu, A. Rountev, Y. Tang, and F. Qin. Efficient checkpointing of java software using context-sensitive capture and replay. In phESEC-FSE, pages 85--94, 2007.
[19]
Z. Yang, M. Yang, L. Xu, H. Chen, and B. Zang. ORDER: object centric deterministic replay for java. In phUSENIX, 2011.

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
OOPSLA '13: Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
October 2013
904 pages
ISBN:9781450323741
DOI:10.1145/2509136
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: 29 October 2013

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. java
  2. meta-programming
  3. programming languages
  4. reflection
  5. runtime analysis
  6. virtualization

Qualifiers

  • Research-article

Conference

SPLASH '13
Sponsor:

Acceptance Rates

OOPSLA '13 Paper Acceptance Rate 50 of 189 submissions, 26%;
Overall Acceptance Rate 268 of 1,244 submissions, 22%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 285
    Total Downloads
  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)0
Reflects downloads up to 19 Feb 2025

Other Metrics

Citations

Cited By

View all

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