Skip navigation.

Contact Us

Department of Computer Science

Janssen Engineering
Room 236
PO Box 441010
Moscow, Idaho
83844-1010

phone: 208-885-6592
fax: 208-885-9052

e-mail:
dept chair
graduate info
undergrad info
sys admin
webmaster

CS Department Banner Graphic

Ziad A. Al-Sharif
Ph.D. Dissertation Final Defense‏

An Extensible Debugging Architecture Based on a Hybrid Debugging Framework

Tuesday 15:30 - 17:30, December 1, 2009 in the Janssen Engineering Building, room 326

Major Professor: Dr. Clinton Jeffery

Abstract:

The cost of writing debuggers is very high. Most debuggers are written employing low level operating system and hardware specific code, which is hard to port to new platforms or architectures and to extend with new debugging techniques. Moreover, current debuggers are usually limited in the amount of analysis that they perform and the level of detail that they provide in order to assist with debugging. Most debuggers are well suited for a specific class of bugs. Different bugs call for different debugging techniques, so experimentation is needed in order to develop the features that will someday be widely adopted in debuggers. This dissertation contributes three primary results.


First, it introduces an event-driven debugging framework named AlamoDE (Alamo-Debug Enabled). The role of this framework is analogous to an abstraction layer upon which to build debuggers. AlamoDE 1) provides in-process debugging support with simple communication and no intrusion on the buggy program space, 2) enables debugging tools to be written at a high level of abstraction, and 3) facilitates developers of experimental automatic debugging features in a very high level language. AlamoDE supports construction of a variety of user-defined debugging tools that range from classical source-level debuggers to automated and dynamic analysis techniques.


Second, this dissertation presents an extensible agent-based debugging architecture named IDEA (Idaho Debugging Extension Architecture). IDEA offers novel debugging techniques that break the rigidness, closeness, and inextensibility of most current debugging paradigm. It provides programmers with the ability to easily implement, test, and combine user-defined debugging agents, and offers simple dynamic and static extension mechanism.


Finally, this dissertation provides a production source-level debugger for the Unicon language named UDB. UDB leverages the classical interactive debugging process with 1) built-in agents employing automatic detection and dynamic analysis techniques, 2) a simple interface to load, unload, enable, and disable separately-compiled dynamically-loaded external debugging agents that work in conjunction with the conventional source-level debugging session and its internal agents, and 3) dynamic temporal assertions that assert a sequence of runtime properties.


While IDEA simplifies a source-level debugger's extensibility and eases its usability, debugging agents add indispensable value with moderate impact on the performance of the debugger. Different agents can work in concert with each other to provide programmers with better understanding of the program's execution behavior and simplify the process of debugging and hunting for elusive and hard to catch bugs.