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

skip to main content
10.1145/2462029.2462032acmconferencesArticle/Chapter ViewAbstractPublication PagespasteConference Proceedingsconference-collections
research-article

ShadowData: shadowing heap objects in Java

Published: 20 June 2013 Publication History

Abstract

In this paper we compare different approaches to maintain shadow state for heap objects in Java. We identify dynamic analyses that need to shadow heap objects, and we consider their requirements. We describe three very different approaches in detail: using a hash map, heap tagging, and injecting shadow fields.
We discuss the tradeoffs between the different approaches, and we empirically evaluate the viability and performance of the hash map and heap tagging approaches, the two approaches that work on Hotspot, the most prevalent JVM. We find that both approaches work reliably, but that -- with the contemporary JVM implementation of heap tagging -- the simpler hash map approach has far superior performance.

References

[1]
D. Ansaloni, W. Binder, A. Villazón, and P. Moret. Parallel dynamic analysis on multicores with aspect-oriented programming. In Proceedings of the 9th International Conference on Aspect-Oriented Software Development, pages 1--12. ACM, 2010.
[2]
M. Azadmanesh and M. Sharifi. Towards a system-wide and transparent security mechanism using language-level information flow control. In Proceedings of the 3rd international conference on Security of information and networks, pages 19--26. ACM, 2010.
[3]
E. Bodden and K. Havelund. Racer: Effective race detection using aspectj. In Proceedings of the 2008 international symposium on Software testing and analysis, pages 155--166. ACM, 2008.
[4]
E. Bodden and K. Havelund. Aspect-oriented race detection in java. Software Engineering, IEEE Transactions on, 36(4):509--527, 2010.
[5]
M. Bond and K. McKinley. Tolerating memory leaks. In ACM Sigplan Notices, volume 43, pages 109--126. ACM, 2008.
[6]
T. Chilimbi, B. Davidson, and J. Larus. Cache-conscious structure definition. In ACM SIGPLAN Notices, volume 34, pages 13--24. ACM, 1999.
[7]
M. Hauswirth and T. Chilimbi. Low-overhead memory leak detection using adaptive statistical profiling. In ACM SIGPLAN Notices, volume 39, pages 156--164. ACM, 2004.
[8]
T. Kalibera, M. Mole, R. Jones, and J. Vitek. A black-box approach to understanding concurrency in dacapo. In Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA). ACM, 2012.
[9]
T. Moseley, A. Shye, V. Reddi, D. Grunwald, and R. Peri. Shadow profiling: Hiding instrumentation costs with parallelism. In Code Generation and Optimization, 2007. CGO'07. International Symposium on, pages 198--208. IEEE, 2007.
[10]
N. Nethercote and J. Seward. How to shadow every byte of memory used by a program. In Proceedings of the 3rd international conference on Virtual execution environments, pages 65--74. ACM, 2007.
[11]
N. Nethercote and J. Seward. Valgrind: a framework for heavyweight dynamic binary instrumentation. ACM Sigplan Notices, 42(6):89--100, 2007.
[12]
J. Newsome and D. Song. Dynamic taint analysis for automatic detection, analysis, and signature generation of exploits on commodity software. 2005.
[13]
E. Raman and D. August. Recursive data structure profiling. In Proceedings of the 2005 workshop on Memory system performance, pages 5--14. ACM, 2005.
[14]
S. Savage, M. Burrows, G. Nelson, P. Sobalvarro, and T. Anderson. Eraser: A dynamic data race detector for multithreaded programs. ACM Transactions on Computer Systems (TOCS), 15(4):391--411, 1997.
[15]
J. Seward and N. Nethercote. Using valgrind to detect undefined value errors with bit-precision. In USENIX Annual Technical Conference, pages 17--30, 2005.
[16]
O. Shalev and N. Shavit. Split-ordered lists: Lock-free extensible hash tables. Journal of the ACM (JACM), 53(3):379--405, 2006.
[17]
S. Sinnadurai, Q. Zhao, and W. fai Wong. Transparent runtime shadow stack: Protection against malicious return address modifications, 2008.
[18]
D. Zaparanuks and M. Hauswirth. Algorithmic profiling. In Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation, pages 67--76. ACM, 2012.

Cited By

View all
  • (2016)A Semantic Dataflow Logger Connecting Java Objects and Database Rows and Columns2016 Fourth International Symposium on Computing and Networking (CANDAR)10.1109/CANDAR.2016.0027(84-90)Online publication date: Nov-2016
  • (2014)PhosphorACM SIGPLAN Notices10.1145/2714064.266021249:10(83-101)Online publication date: 15-Oct-2014
  • (2014)PhosphorProceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications10.1145/2660193.2660212(83-101)Online publication date: 15-Oct-2014

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
PASTE '13: Proceedings of the 11th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering
June 2013
54 pages
ISBN:9781450321280
DOI:10.1145/2462029
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: 20 June 2013

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Java
  2. dynamic analysis
  3. heap tagging
  4. shadow state

Qualifiers

  • Research-article

Funding Sources

Conference

PASTE '13

Acceptance Rates

PASTE '13 Paper Acceptance Rate 7 of 13 submissions, 54%;
Overall Acceptance Rate 57 of 159 submissions, 36%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)0
Reflects downloads up to 18 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2016)A Semantic Dataflow Logger Connecting Java Objects and Database Rows and Columns2016 Fourth International Symposium on Computing and Networking (CANDAR)10.1109/CANDAR.2016.0027(84-90)Online publication date: Nov-2016
  • (2014)PhosphorACM SIGPLAN Notices10.1145/2714064.266021249:10(83-101)Online publication date: 15-Oct-2014
  • (2014)PhosphorProceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications10.1145/2660193.2660212(83-101)Online publication date: 15-Oct-2014

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media