Copyright © 2007 Elsevier Inc. All rights reserved.
Dynamic object process graphs
Available online 26 June 2007.
References and further reading may be available for this article. To view references and further reading you must purchase this article.
Abstract
A trace is a record of the execution of a computer program, showing the sequence of operations executed. A trace may be obtained through static or dynamic analysis. An object trace contains only those operations that relate to a particular object.
Traces can be very large for longer system executions. Moreover, they lack structure because they do not show the control dependencies and completely unfold loops. Object process graphs are a finite concise description of dynamic object traces. They offer the advantage of representing control dependencies and loops explicitly.
This article describes a new technique to extract object process graphs through dynamic analysis and discusses several applications, in particular program understanding and protocol recovery. A case study is described that illustrates and demonstrates use and feasibility of the technique. Finally, statically and dynamically derived object process graphs are compared.
Keywords: Tracing; Protocol recovery; Dynamic analysis; Program understanding; Reverse engineering
Article Outline
- 1. Introduction
- 1.1. Our previous work
- 1.2. Contributions
- 1.3. Overview
- 2. Traces for individual objects
- 3. Applications
- 4. Dynamic object process graph extraction
- 4.1. Instrumentation
- 4.2. Normalizing transformation
- 4.3. Instrumenting transformation
- 4.4. Read/write instrumentation
- 4.5. Handling of arrays and records
- 4.6. Trace to dynamic object process graph
- 4.6.1. Filtering
- 4.6.2. Raw graph construction
- 4.6.3. Graph transformation
- 4.7. Extensions
- 4.7.1. Multithreading
- 5. Case study: Use and feasibility
- 5.1. Feasibility: Symbol table of a large compiler
- 5.2. Program understanding: sockets in IRC clients
- 5.3. Handling large graphs: SQLite database
- 5.3.1. SQLite
- 5.3.2. Simplified object process graphs
- 5.4. Protocol validation
- 6. Case study: Comparison to static tracing
- 6.1. Underlying points-to analysis
- 6.2. Subject systems
- 6.3. Results
- 7. Related Work
- 8. Conclusion
- Acknowledgements
- References
- Vitae






E-mail Article
Add to my Quick Links

Cited By in Scopus (0)






