Source level debugging of dynamically translated programs
Naveen Kumar (CS Grad/Pitt)
PhD Proposal Defense
Monday March 24, 2008
12:00 p.m.
6th floor Board Room
Abstract
The capability to debug a program at the source level is useful and often indispensable. Debuggers use sophisticated techniques to provide a source view of a program, even though what is executing on the hard-ware is often machine code. The techniques used by debuggers continuously evolve with changes in programming language strategies and execution environments. Recently, a new execution mechanism has emerged, called software dynamic translation, that inserts a layer of software between a program and a host machine. The software layer has complete control of an executing application, which is then modified for a specific purpose. A spectrum of diverse uses of software dynamic translation have emerged, including dynamic optimization, dynamic instrumentation, software security checking, host machine virualization and simulations, among others. With the growing number of uses of software dynamic translation in academia and industry, a lack of adequate source level debugging techniques is currently a stumbling block.
This thesis is the first research that targets source level debugging of dynamically translated programs. The techniques developed in this research do not require or induce changes in the program when it is being debugged. In other words, the program being debugged is the same as that outside of the debug session. The debugging techniques are not catered to a specific SDT system or implementation; they can be applied to a broad range of SDT systems.
With software dynamic translation, a program's code is modified at runtime, including when it is being debugged. Therefore, the debugger's view of the program must be kept consistent with the changing program for debugging accuracy. This thesis develops a framework, called Tdb, that generates and maintains consistent information about the constantly changing program and uses the information for debugging.
Tdb's organization and its techniques offer several advantages. First, Tdb allows debug users to choose their favorite debugger. Users do not have to learn new commands or be aware that the program being debugged is being dynamically translated. Second, Tdb enables different dynamic translators to be used with the same debugger, thereby providing portability to its techniques across dynamic translators.
This thesis describes the Tdb framework and experimentally evaluates its techniques. Tdb's techniques are implemented for three dynamic translators on two different hardware platforms and experiments are conducted. The experimental results demonstrate that source level debugging of dynamically translated programs is possible. Further, the experiments show that Tdb's techniques are practical as well as efficient.
Dissertation Co-AdviserS
Dr. Bruce Childers, Department of Computer Science
Dr. Mary Lou Soffa (University of Virginia)
Committee Members
Dr. Sangyeyn ChoDr. Mike Smith (Harvard)





