Skip to main content

Part of the book series: Advances in Intelligent Systems and Computing ((AISC,volume 327))

Abstract

Dynamic program analysis is a very popular technique for analysis of computer programs. It analyses the properties of a program while it is executing. Dynamic analysis has been found to be more precise than static analysis in handling run-time features like dynamic binding, polymorphism, threads etc. Therefore much emphasis is now being given on dynamic analysis of programs ( instead of static analysis) involving the above mentioned features. Various techniques have been devised over the past several years for the dynamic analysis of programs. This paper provides an overview of the existing techniques and tools for the dynamic analysis of programs. Further, the paper compares these techniques for their merits and demerits and emphasizes the importance of each technique.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 169.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 219.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Ball, T.: The concept of dynamic analysis. In: Wang, J., Lemoine, M. (eds.) ESEC 1999 and ESEC-FSE 1999. LNCS, vol. 1687, p. 216. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  2. Ball, T., Larus, J.R.: Efficient path profiling. In: Proceedings of MICRO 1996, pp. 46–57 (1996)

    Google Scholar 

  3. Baxter, I.: DMS: Program Transformations for Practical Scalable Software Evolution. In: Proceedings of the 26th International Conference on Software Engineering, pp. 625–634 (2004)

    Google Scholar 

  4. Binder, W., Hulaas, J., Moret, P., Villazón, A.: Platform-independent profiling in a virtual execution environment. Software: Practice and Experience 39(1), 47–79 (2009)

    Google Scholar 

  5. Binkley, D.: Source Code Analysis: A Road Map. Future of Software Engineering (2007)

    Google Scholar 

  6. Bodden, E., Havelund, K.: Aspect-oriented Race Detection in Java. IEEE Transactions on Software Engineering 36(4), 509–527 (2010)

    Article  Google Scholar 

  7. Boner, J.: AspectWerkz - Dynamic AOP for Java. In: Proceeding of the 3rd International Conference on Aspect- Oriented Development (AOSD 2004), Lancaster, UK (2004)

    Google Scholar 

  8. Bruneton, E., Lenglet, R., Coupaye, T.: ASM: A code manipulation tool to implement adaptable systems. In: Adaptable and Extensible Component Systems, Grenoble, France (2002)

    Google Scholar 

  9. Buck, B., Hollingsworth, J.K.: An API for Runtime Code Patching. International Journal of High Performance Computing Applications, 317–329 (2000)

    Google Scholar 

  10. Chiba, S.: Load-time structural reflection in java. In: Bertino, E. (ed.) ECOOP 2000. LNCS, vol. 1850, p. 313. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  11. Dahm, M.: Byte code engineering. In: Java-Information-Tage(JIT 1999) (1999), http://jakarta.apache.org/bcel/

  12. Zheng, C.-H., Jensen, E., Mitchell, N., Ng, T.-Y., Yang, J.: Visualizing the Execution of Java Programs. In: Diehl, S. (ed.) Dagstuhl Seminar 2001. LNCS, vol. 2269, pp. 151–162. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  13. Dieckmann, S., Hölzle, U.: A study of the allocation behavior of the SPECjvm98 Java benchmarks. In: Guerraoui, R. (ed.) ECOOP 1999. LNCS, vol. 1628, pp. 92–115. Springer, Heidelberg (1999)

    Google Scholar 

  14. Dufour, B., Goard, C., Hendren, L., de Moor, O., Sittampalam, G., Verbrugge, C.: Measuring the dynamic behaviour of AspectJ programs. In: Proceedings of the ACM Conference on Object-Oriented Programming, Systems, Languages and Applications, pp. 150–169. ACM Press (2004)

    Google Scholar 

  15. Dufour, B., Hendren, L., Verbrugge, C.: *J: A tool for dynamic analysis of Java programs. In: Proc 18th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp. 306–307. ACM Press (2003)

    Google Scholar 

  16. Ernst, M.D.: Dynamically Discovering Likely Program Invariants. (PhD Dissertation), University of Washington, Dept. of Comp. Sci. & Eng., Seattle, Washington (2000)

    Google Scholar 

  17. Ernst, M.D.: Static and Dynamic Analysis: Synergy and Duality. In: Proceedings of the 5th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (2004)

    Google Scholar 

  18. Gupta, V., Chhabra, J.K.: Measurement of Dynamic Metrics using Dynamic Analysis of Programs. In: Applied Computing Conference, Turkey (2008)

    Google Scholar 

  19. Hangal, S., Lam, M.S.: Tracking Down Software Bugs using Automatic Anomaly Detection. In: ICSE 2002 (2002)

    Google Scholar 

  20. Hilyard, J.: No Code Can Hide from the Profiling API in the.NET Framework 2.0. MSDN Magazine (January 2005), http://msdn.microsoft.com/msdnmag/issues/05/01/CLRProfiler/

  21. Hilsdale, E., Hugunin, J.: Advice weaving in AspectJ. In: Lieberherr, K. (ed.) Aspect-oriented Software Development (AOSD 2004). ACM Press (2004)

    Google Scholar 

  22. Hollingsworth, J.K.: MDL: A language and compiler for dynamic instrumentation. In: Proceedings of International conference on Parallel architecture and compilation techniques (1997)

    Google Scholar 

  23. IBM Corporation. Jikes Bytecode Toolkit (2000), http://www-128.ibm.com/developerworks/opensource/

  24. Jackson, D., Rinard, M.: Software Analysis: A Road Map. IEEE Transaction on Software Engineering (2000)

    Google Scholar 

  25. Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An Overview of AspectJ. In: Lindskov Knudsen, J. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–355. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  26. Kiczales, G., et al.: Aspect-oriented programming. In: Proc of the 11th European Conference on Object-Oriented Programming, Finland. LNCS, vol. 1241, pp. 220–242. Springer (1997)

    Google Scholar 

  27. Larus, J.R., Ball, T.: Rewriting executable to measure program behavior. Software:Practice and Experience 24(2), 197–218 (1994)

    Google Scholar 

  28. Larus, J.R., Schnarr, E.: EEL: Machine independent executable editing. In: PLDI 1995 (1995)

    Google Scholar 

  29. Lee, H.B., Zorn, B.G.: BIT: A tool for instrumenting Java bytecode. In: Proceedings of USENIX Symposium on Internet Technologies and Systems, pp. 73–82 (1997)

    Google Scholar 

  30. Maebe, J., Buytaert, D., Eeckhout, L., De Bosschere, K.: Javana: A System for Building Customized Java Program Analysis Tools. In: OOPSLA 2006 (2006)

    Google Scholar 

  31. Mines de Nantes, E.: No Java without Caffeine. In: ASE 2002 (2002)

    Google Scholar 

  32. Mock, M.: Dynamic Analysis from the Bottom Up. In: 25th ICSE Workshop on Dynamic Analysis (2003)

    Google Scholar 

  33. Naik, M.C.: A static and dynamic program analysis framework for Java (2010), http://chord.stanford.edu/

  34. Nimmer, J.W., Ernst, M.D.: Automatic generation and checking of program specifications. Technical Report 823, MIT Lab for Computer Science, USA (2001)

    Google Scholar 

  35. Nethercote, N., Seward, J.: Valgrind: A framework for heavyweight dynamic binary instrumentation. In: Proc. of ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI (2007)

    Google Scholar 

  36. Parasoft Inc. Automating C/C++ Runtime Error Detection With Parasoft Insure++. White paper (2006)

    Google Scholar 

  37. Pearce, D.J., Webster, M., Berry, R., Kelly, P.H.J.: Profiling with AspectJ. Software: Practice and Experience (2007)

    Google Scholar 

  38. Rastings, R., Joyce, B.: Purify: Fast Detection of Memory Leaks and Access Errors. Winter Usenix Conference (1992)

    Google Scholar 

  39. Reiss, S.P.: Efficient monitoring and display of thread state in java. In: Proceedings of IEEE International Workshop on Program Comprehension, St. Louis, MO, pp. 247–256 (2005)

    Google Scholar 

  40. Skatelsky, A., et al.: Dynamic Analysis of Microsoft Windows Applications. In: International Symposium on Performance Analysis of Software and System (2010)

    Google Scholar 

  41. Singh, P.: Design and validation of dynamic metrics for object-oriented software systems. (PhD Thesis), Guru Nanak Dev University, Amritsar, India (2009)

    Google Scholar 

  42. Spinczyk, O., Lohmann, D., Urban, M.: Aspect C++: an AOP Extension for C++. Software Developer’s Journal, 68–76 (2005)

    Google Scholar 

  43. Srivastava, A., Eustace, A.: ATOM: A system for building customized program analysis tools. SIGPLAN Not 39(4), 528–539 (2004)

    Article  Google Scholar 

  44. Sun Microsystems Inc. JVM Tool Interface, JVMTI (2004), http://java.sun.com/javase/6/docs/technotes/guides/jvmti/index.html

  45. Sun Microsystems Inc. Java Virtual Machine Profiler Interface, JVMPI (2004), http://java.sun.com/j2se/1.4.2/docs/guide/jvmpi/

  46. Sun Microsystem Inc. Java Platform debug Architecture (2004), http://java.sun.com/javase/6/docs/technotes/guides/jpda/

  47. Waddington, D.G., Yao, B.: High Fidelity C++ Code Transformation. In: Proceedings of the 5th Workshop on Language Descriptions, Tools and Applications, Edinburgh, Scotland, UK (2005)

    Google Scholar 

  48. Waddington, D.G.: Dynamic Analysis and Profiling of Multi-threaded Systems. In: Taiko, P.F. (ed.) Designing Software-Intensive Systems: Methods and Principles. Information Science Reference Publishing (2008) ISBN 978-1-59904-699-0

    Google Scholar 

  49. https://software.intel.com/en-us/intel-parallel-studio-xe

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Anjana Gosain .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer International Publishing Switzerland

About this paper

Cite this paper

Gosain, A., Sharma, G. (2015). A Survey of Dynamic Program Analysis Techniques and Tools. In: Satapathy, S., Biswal, B., Udgata, S., Mandal, J. (eds) Proceedings of the 3rd International Conference on Frontiers of Intelligent Computing: Theory and Applications (FICTA) 2014. Advances in Intelligent Systems and Computing, vol 327. Springer, Cham. https://doi.org/10.1007/978-3-319-11933-5_13

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-11933-5_13

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-11932-8

  • Online ISBN: 978-3-319-11933-5

  • eBook Packages: EngineeringEngineering (R0)

Publish with us

Policies and ethics