Most of these conventional debuggers provide breakpoints and traces as their main debugging aids. These features have changed little in the past 15-20 years despite the increased complexity of software systems o which debuggers are used. It combines dynamic program slicing and execution backtracking techniques in an novel way. With the help of this powerful combination, program bugs may be localized and removed very quickly. Examples are given to show how our debugger may be used, and how it relates to other research in the area.
Program slices are useful in debugging.
Most work on program slicing to date has concentrated on finding slices of programs involving only scalar variables. Pointers and composite variables do not lend themselves well to static analysis, especially when the language involved is not strongly-typed. When debugging a program, however, we are interested in analyzing the program behavior for test cases that reveal a fault. In this paper, we present a uniform approach to handling pointers and composite variables such as arrays, records, and unions for the purpose of obtaining dynamic program slices. Programmers spend considerable time debugging code.