Debugging Object-Oriented Programs with Behavior Views

Date of Submission: 
April 6, 2005
Report Number: 
Report PDF: 
A complex software system may perform many program tasks during execution to provide the required functionalities. To detect and localize bugs related to the implementation of these tasks, the software developers must be able to monitor the progress of the tasks during execution and check whether the actions for these tasks have been performed correctly. This paper presents a debugger to facilitate this monitoring. The debugger introduces a new kind of abstraction, the behavior views, that can be used to specify how the actions for a program task are expected to occur in various scenarios. Enhanced with statements that can check properties at various steps during the progress of the task, a behavior view can be used to monitor whether the actions for the tasks have been performed at the right time, on the right set of data, and with the right effects on the program states. Our initial case study indicates that the debugger can be useful for localizing bugs.