The OpenWhisk debugger is itself an OpenWhisk application. No changes were needed to the OpenWhisk core, in order to add this functionality. This design was possible, due to some of the unique features of OpenWhisk. First, let's discuss the design. Later, we can get into more detail of this meta-programming aspect of OpenWhisk.
When attaching to an action, the debugger creates a trampoline that allows managing of a breakpoint. This trampoline consists of five OpenWhisk actions --- note how the trampoline consists entirely of OpenWhisk constructs. At the top level, there are three important constructs, one of which has a few internal bits.
We will continue to flesh out this section.