ACM Home Page
Please provide us with feedback. Feedback
Dynamic shape analysis via degree metrics
Full text PdfPdf (670 KB)
Source
International Symposium on Memory Management archive
Proceedings of the 2009 international symposium on Memory management table of contents
Dublin, Ireland
SESSION: Paper session 5 table of contents
Pages 119-128  
Year of Publication: 2009
ISBN:978-1-60558-347-1
Authors
Maria Jump  The University of Texas at Austin, Austin, TX, USA
Kathryn S. McKinley  The University of Texas at Austin, Austin, TX, USA
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 18,   Downloads (12 Months): 73,   Citation Count: 1
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1542431.1542449
What is a DOI?

ABSTRACT

Applications continue to increase in size and complexity which makes debugging and program understanding more challenging. Programs written in managed languages, such as Java, C#, and Ruby, further exacerbate this challenge because they tend to encode much of their state in the heap. This paper introduces dynamic shape analysis, which seeks to characterize data structures in the heap by dynamically summarizing the object pointer relationships and detecting dynamic degree metrics based on class. The analysis identifies recursive data structures, automatically discovers dynamic degree metrics, and reports errors when degree metrics are violated. Uses of dynamic shape analysis include helping programmers find data structure errors during development, generating assertions for verification with static or dynamic analysis, and detecting subtle errors in deployment. We implement dynamic shape analysis in a Java Virtual Machine (JVM). Using SpecJVM and DaCapo benchmarks, we show that most objects in the heap are part of recursive data structures that maintain strong dynamic degree metrics. We show that once dynamic shape analysis establishes degree metrics from correct executions, it can find automatically inserted errors on subsequent executions in microbenchmarks. These suggests it can be used in deployment for improving software reliability.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
3
4
5
 
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
20
M. Jump and K. S.McKinley. Cork: Dynamic memory leak detection for Java. In ACM Symposium on the Principles of Programming Languages, pages 31--38, Nice, France, January 2007.
21
22
 
23
C. Liu, X. Yan, H. Yu, J. Han, and P. S. Yu. Mining behavior graphs for backtrace of noncrashing bugs. In SIAM International Conference on Data Mining, pages 286--297, Newport Beach, California, April 2005.
 
24
N. Mitchell. The runtime structure of object ownership. In European Conference on Object-Oriented Programming, pages 74--98, Nantes, France, July 2006.
25
 
26
S. Pheng and C. Verbrugge. Dynamic shape and data structure analysis in Java. Technical Report Sable TR 2005-3, McGill University School of Computer Science, October 2005.
27
28
29
 
30
Standard Performance Evaluation Corporation. SPECjvm98 Documentation, release 1.03 edition, March 1999.
 
31


Collaborative Colleagues:
Maria Jump: colleagues
Kathryn S. McKinley: colleagues