Font Size: a A A

Source level debugging of dynamically translated programs

Posted on:2009-07-03Degree:Ph.DType:Thesis
University:University of PittsburghCandidate:Kumar, NaveenFull Text:PDF
GTID:2448390005950780Subject:Computer Science
Abstract/Summary:
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 hardware is machine code. Debugging techniques evolve with significant changes in programming languages and execution environments. Recently, software dynamic translation (SDT) has emerged as a new execution mechanism. SDT inserts a run-time software layer between the program and the host machine, providing flexibility in execution and program monitoring. Increasingly popular technologies that use this mechanism include dynamic optimization, dynamic instrumentation, security checking, binary translation, and host machine virtualization. However, the run-time program modifications in a SDT environment pose significant challenges to a source level debugger. Currently debugging techniques do not exist for software dynamic translators.;Third, the framework can be integrated with existing debuggers, such as Gdb, and does not require changes to these debuggers. This improves usability and adoption, eliminating the learning curve associated with a new debugging environment. Finally, the proposed techniques are efficient. The runtime overhead of the debugged programs is low and comparable to that of existing debuggers.;Tdb's techniques have been implemented for three different dynamic translators, on two different hardware platforms. The experimental results demonstrate that source level debugging of dynamically translated programs is feasible, and our implemented systems are portable, usable, and efficient.;This thesis is the first to provide techniques for source level debugging of dynamically translated programs. The thesis proposes a novel debugging framework, called Tdb, that addresses the difficult challenge of maintaining and providing source level information for programs whose binary code changes as the program executes. The proposed framework has a number of important features. First, it does not require or induce changes in the program being debugged. In other words, programs are debugged is their deployment environment. Second, the framework is portable and can be applied to virtually any SDT system. The framework requires minimal changes to an SDT implementation, usually just a few lines of code.
Keywords/Search Tags:Source level, Program, Dynamically translated, SDT, Techniques, Framework, Changes, Debuggers
Related items