CS 295
Winter 2012, Paper List
Foundations
of Dynamic Analysis
Efficient Path Profiling.
T. Ball and J. Larus. (MICRO 1996)
Value Profiling. B. Calder
and P. Feller. (MICRO 1997)
Exploiting Hardware Performance
Counters with Flow and Context Sensitive Profiling. G. Ammons, T. Ball, and
J. R. Larus. (PLDI 1997)
Whole Program Paths. J.
Larus. (PLDI 1999)
A Framework for Reducing the
Cost of Instrumented Code, M. Arnold and B. G. Ryder (PLDI 2001)
Continuous Path and Edge
Profiling. M. D. Bond and K. S. McKinley. (MICRO 2005)
Preferential Path Profiling:
Compactly Numbering Interesting Paths. K. Vaswani, A. V. Nori, and T. M.
Chilimbi. (POPL 2007)
Whole Execution Traces. X.
Zhang and R. Gupta. (MICRO 2004)
Precise Dynamic Slicing
Algorithms. X. Zhang and R. Gupta. (ICSE 2003)
Cost Effective Dynamic Program
Slicing. X. Zhang and R. Gupta. (PLDI 2004)
Pin:
Building Customized Program Analysis Tools with Dynamic Instrumentation. C.
K. Luk et al. (PLDI 2005)
Pruning Dynamic Slices With
Confidence. X. Zhang and R. Gupta. (PLDI 2006)
Accurate, Efficient, and
Adaptive Calling Context Profiling. X. Zhuang, M. J. Serrano, H. W. Cain,
and J. D. Choi. (PLDI 2006)
Probabilistic
Calling Contexts. M. D. Bond
and K. S. McKinley (OOPSLA 2007)
How to Shadow Every Byte
of Memory Used by a Program. N. Nethercote and J. Seward (VEE 2007)
Efficient Program
Execution Indexing. B. Xin, N. Sumner, and X. Zhang (PLDI 2008)
Breadcrumbs:
Efficient Context Sensitivity for Dynamic Bug Detection Analyses. M. D.
Bond, G. Z. Baker, and S. Z. Guyer (PLDI 2010)
A
Concurrent Dynamic Analysis Framework for Multicore Hardware. J. Ha, M. Arnold, S. M. Blackburn, and
K. S. McKinley (OOPSLA 2009)
Precise Calling
Context Encoding. W. N. Sumner, Y. Zheng, D. Weeratunge, and X. Zhang (ICSE
2010)
Dynamic
Memory Leak Detection and Heap Analysis
Purify:
Fast Detection of Memory Leaks and Access Errors. R. Hastings and B. Joyce. (USENIX
Winter 1992)
LeakBot: An Automated and
Lightweight Tool for Diagnosing Memory Leaks in Large Java Applications. N.
Mitchell and G. Sevitsky. (ECOOP 2003)
Low-overhead memory leak detection using adaptive statistical profiling. M. Hauswirth and T. M. Chilimbi. (ASPLOS 2004)
SafeMem:
Exploiting ECC-Memory for Detecting Memory Leaks and Memory Corruption During
Production Runs. F. Qin, S. Lu, and Y. Y. Zhou. (HPCA 2005)
Bell:
Bit-Encoding Online Memory Leak Detection, M. D. Bond, K. S. McKinley.
(ASPLOS 2006)
Cork: Dynamic memory leak
detection for garbage-collected language. M. Jump and K. S. McKinley. (POPL
2007)
Precise Memory
Leak Detection for Java Software using Container Profiling. G. Xu and A.
Rountev. (ICSE 2008)
LeakSurvivor:
Towards Safely Tolerating Memory Leaks for Garbage-Collected Languages. Y.
Tang and F. Qin (USENIX 2008)
Tolerating
Memory Leaks. M. D. Bond and K. S. McKinley (OOPSLA 2008)
QVM: An Efficient Runtime for
Detecting Defects in Deployed Systems. M. Arnold, M. Vechev, and E. Yahav.
(OOPSLA 2008)
Leak
Pruning. M. D. Bond and K. S. McKinley (ASPLOS 2009)
Efficiently
and Precisely Locating Memory Leaks and Bloat. G. Novark, E. D. Berger, B.
G. Zorn. (PLDI 2009)
GC Assertions: Using the
Garbage Collector to Check Heap Properties. E. Aftandilian and S. Z. Guyer.
(PLDI 2009)
What Can
the GC Compute Efficiently? A Language for Heap Assertions at GC Time. C. Reichenbach, N. Immerman, Y.
Smaragdakis, E. Aftandilian and S. Z. Guyer. (OOPSLA 2010)
Diagnosing
memory leaks using graph mining on heap dumps. E. K. Maxwell, G. Back, and N.
Ramakrishnan. (KDD 2010)
LeakPoint:
Pinpointing the Causes of Memory Leaks. J. Clause and A. Orso. (ICSE 2010)
LeakChaser:
Helping Programmers Narrow Down Causes of Memory Leaks. G. Xu, M. D. Bond,
F. Qin, and A. Rountev. (PLDI 2011)
Asynchronous
Assertions. E. Aftandilian, S. Z. Guyer, M. Vechev, and E. Yahav. (OOPSLA
2011)
Dynamic
Software Bloat Analysis
Software Bloat
Analysis: Finding, Removing, and Preventing Performance Problems in Modern
Large-Scale Object-Oriented Applications. G. Xu, N. Mitchell, M. Arnold, A.
Rountev, and G. Sevitsky. (FoSER
2010) ---- A roadmap paper
Four
Trends Leading to Java Runtime Bloat. N. Mitchell, E. Schonberg, and G.
Sevitsky. (IEEE Software 2010)
Dynamic Metrics for Java.
B. Dufour, K. Driesen, L. Hendren, and C. Verbrugge. (OOPSLA 2003)
Finding
and Removing Performance Bottlenecks in Large Systems. G. Ammons, J. D.
Choi, M. Gupta, and N. Swamy. (ECOOP 2004)
Modeling Runtime
Behavior in Framework-Based Applications, N. Mitchell, G. Sevitsky, and H.
Srinivasan. (ECOOP 2006)
The
Runtime Structure of Object Ownership, N. Mitchell. (ECOOP 2006)
The
Causes of Bloat, The Limits of Health. N. Mitchell and G. Sevitsky. (OOPSLA
2007)
JOLT: Lightweight Dynamic Analysis
and Removal of Object Churn. A.
Shankar, M. Arnold, and R. Bodik. (OOPSLA 2008)
Go with the Flow:
Profiling Copies to Find Runtime Bloat. G. Xu, M. Arnold, N. Mitchell, A.
Rountev, G. Sevitsky. (PLDI 2009)
Chameleon: Adaptive
Selection of Collections. O. Shacham, M. Vechev, and E. Yahav. (PLDI 2009)
Finding
Low-Utility Data Structures. G. Xu, N. Mitchell, M. Arnold, A. Rountev, E.
Schonberg, and G. Sevitsky. (PLDI 2010)
Brainy:
Effective Selection of Data Structures. C. Jung, S. Rus, B. P. Railing, N.
Clark, and S. Pande. (PLDI 2011)
Optimizing
Compiler
Dynamic Feedback: An Effective
Technique for Adaptive Computing. P. C. Diniz and M. C. Rinard. (PLDI 1997)
Thin Locks: Featherweight
Synchronization for Java. D. F. Bacon, R. Konuru, C. Murthy, and M. Serrano.
(PLDI 1998)
The Jalapeño Dynamic
Optimizing Compiler for Java. M. G. Burke, J. D. Choi, S. Fink, D. Grove,
M. Hind, V. Sarkar, M. J. Serrano, V. C. Sreedhar, H. Srinivasan, and J.
Whaley. (JAVA 1999)
Partial Method
Compilation using Dynamic Profile Information. J. Whaley. (OOPSLA 2000)
Dynamo: A Transparent Dynamic Optimization
System. V. Bala, E. Duestewald, and S. Banerjia. (PLDI 00)
Adaptive Optimization in the
Jalapeño JVM. M. Arnold, S. Fink, D. Grove, M. Hind, P. F. Sweeney. (OOPSLA
2000)
Dynamic Hot Data Stream
Prefetching for General-Purpose Programs. T. M. Chilimbi and M. Hirzel.
(PLDI 2002)
Adaptive Online
Context-Sensitive Inlining. K. Hazelwood and D. Grove. (CGO 2003)
Continuous Program
Optimization: A Case Study. T. Kistler and M. Franz. (TOPLAS 2003)
The Garbage Collection Advantage:
Improving Program Locality. X. Huang,
S. M. Blackburn, K. S. McKinley, J. E. B. Moss, Z. Wang, and P. Cheng. (OOPSLA 2004)
Online Performance
Auditing: Using Hot Optimizations Without Getting Burned. J. Lau, M.
Arnold, M. Hind, and B. Calder. (PLDI 2006)
Trace-based Just-in-Time Type
Specialization for Dynamic Languages. A. Gal et al. (PLDI 2009)
(Mostly
Single-Threaded) Execution Correctness and Security
Dynamically
Discovering Likely Program Invariants to Support Program Evolution. M. D.
Ernst, J. Cockrell, W. G. Griswold, and D. Notkin. (IEEE TSE 2001)
Tracking Down Software Bugs
Using Automatic Anomaly Detection. S. Hangal and M. S. Lam. (ICSE 2002)
Simplifying and Isolating
Failure-Inducing Input. A. Zeller and R. Hildebrandt. (IEEE TSE 2002)
Bug Isolation via Remote
Program Sampling. B. Liblit, A. Aiken, A. X. Zheng, and M. I. Jordan. (PLDI
2003)
DieHard: Probabilistic Memory
Safety for Unsafe Languages. E. D. Berger and B. G. Zorn. (PLDI 2003)
DieHarder: Securing
the Heap. G. Novark and E. D. Berger. (CCS
2010)
CP-Miner: A
Tool for Finding Copy-paste and Related Bugs in Operating System Code. Z.
Li, S. Lu, S. Myagmar, and Y. Y. Zhou. (OSDI 2004)
Scalable Statistical Bug
Isolation. B. Liblit, M. Naik, A. X. Zheng, A. Aiken, and M. I. Jordan.
(PLDI 2005)
Rx: Treating Bugs As
Allergies--A Safe Method to Survive Software Failures. F. Qin, J. Tucek, J.
Sundaresan, and Y. Y. Zhou. (SOSP 2005)