Phoenix Based Dynamic Slicing Tool
Ravi Ramaseshan
Abstract
Programmers spend considerable time debugging code. Programmers perform
many tasks manually that the tools could perform automatically, such as
finding which statements in the program affect the value of an output
variable for a given test case, and what was the value of a given
variable when the control last reached a given program location. If
debugging tools provided explicit support for these tasks, the debugging
process could be automated to a significant extent.
During my internship at Microsoft, I worked in a 4-member team and built
an intra-procedural, debug-time dynamic slicing tool as an add-in to
Visual Studio, to be used as a sample in the Phoenix Research
Development Kit. I used Phoenix� data flow analysis and optimization
capability to compute a dynamic slice of the program on both source code
as well as assembly instructions. The tool uses Visual Studio� debugger
to extract runtime information from the program context and uses Visual
Studio as the User Interface.