  Debugging distributed systems is hard. Most of the techniques that have been
developed for debugging such systems use either extensive model checking, or
postmortem analysis of logs and traces. Interactive debugging is typically a
tool that is only effective in single threaded and single process applications,
and is rarely applied to distributed systems. While the live observation of
state changes using interactive debuggers is effective, it comes with a host of
problems in distributed scenarios. In this paper, we discuss the requirements
an interactive debugger for distributed systems should meet, the role the
underlying distributed model plays in facilitating the debugger, and the
implementation of our interactive debugger: GoTcha. GoTcha is a browser based
interactive debugger for distributed systems built on the Global Object Tracker
(GoT) programming model. We show how the GoT model facilitates the debugger,
and the features that the debugger can offer. We also demonstrate a typical
debugging workflow.
