Object-Centric Debugging

During the process of developing and maintaining a complex software system, developers pose detailed questions about the runtime behavior of the system. Source code views offer strictly limited insights, so developers often turn to tools like debuggers to inspect and interact with the running system. Unfortunately, traditional debuggers focus on the runtime stack as the key abstraction to support debugging operations, though the questions developers pose often have more to do with objects and their interactions.

We propose object-centric debugging as an alternative approach to interacting with a running software system. We show how, by focusing on objects as the key abstraction, natural debugging operations can be defined to answer developer questions related to runtime behavior. We present a running prototype of an object-centric debugger, and demonstrate, with the help of a series of examples, how object-centric debugging offers more effective support for many typical developer tasks than a traditional stack-oriented debugger.

Getting Started

To get started you can either use a ready-made one-click image (suggested), or try to load the code yourself.

One-Click Image

  1. Download the OCD distribution.
  2. Launch the executable of your platform:
    • Mac: objectDebugger-OneClick.app
    • Linux: objectDebugger-OneClick.app/objectDebugger-OneClick.sh
    • Windows: objectDebugger-OneClick.app/objectDebugger-OneClick.exe

Loading

 Gofer new
 	squeaksource: 'ObjectDebugger';
       package: 'Ood';
       load.

Publications

  1. Jorge Ressia, Alexandre Bergel, and Oscar Nierstrasz. Object-Centric Debugging. In Proceeding of the 34rd international conference on Software engineering, ICSE '12, 2012. DOI PDF 
  2. Jorge Ressia. Object-Centric Reflection. PhD thesis, University of Bern, October 2012. PDF 

Last changed by admin on 21 April 2009