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.