A Scalable Mixed-Level Approach to Dynamic Analysis of C and C++ Programs

Download: PDF.

“A Scalable Mixed-Level Approach to Dynamic Analysis of C and C++ Programs” by Philip Jia Guo. Masters thesis, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), May 5, 2006.

Abstract

This thesis addresses the difficult task of constructing robust and scalable dynamic program analysis tools for programs written in memory-unsafe languages such as C and C++, especially those that are interested in observing the contents of data structures at run time. In this thesis, I first introduce my novel mixed-level approach to dynamic analysis, which combines the advantages of both source- and binary-based approaches. Second, I present a tool framework that embodies the mixed-level approach. This framework provides memory safety guarantees, allows tools built upon it to access rich source- and binary-level information simultaneously at run time, and enables tools to scale to large, real-world C and C++ programs on the order of millions of lines of code. Third, I present two dynamic analysis tools built upon my framework — one for performing value profiling and the other for performing dynamic inference of abstract types — and describe how they far surpass previous analyses in terms of scalability, robustness, and applicability. Lastly, I present several case studies demonstrating how these tools aid both humans and automated tools in several program analysis tasks: improving human understanding of unfamiliar code, invariant detection, and data structure repair.

Download: PDF.

BibTeX entry:

@mastersthesis{Guo2006,
   author = {Philip Jia Guo},
   title = {A Scalable Mixed-Level Approach to Dynamic Analysis of {C} and
	{C++} Programs},
   school = {MIT Department of Electrical Engineering and Computer Science},
   address = {Cambridge, MA},
   month = {May~5,},
   year = {2006}
}

(This webpage was created with bibtex2web.)

Back to Program Analysis Group publications.