Debugger

Should more detailed analysis of the transform be required, a debugger permits the setting of breakpoints and stepping through transform statements to analyse transforms as they execute.

Debugging has two modes of operation:

  1. Interactive debugging, which allows break points to be set, transform to be executed to a breakpoint or stepped and various forms of data to be viewed, e.g. status of variables, stacks etc. The system operates as normal, reading from sources and writing targets, except to stop at breakpoints.
  2. Postmortem debugging, which operates from a trace created by a previous run of a transform. It operates the same as interactive debugging, except that it may step back as well as forward in the transform and doesn’t require any sources not create any targets. A trace is a detailed information log stored as a serialized file and is able to be generated when requested. A significant advantage of the post mortem debugger is that it allows ETL to debug client code without having access to their complete environment.

The debugger:

  • acts as a tutorial aid in learning to use SML
  • allows users to discover what is going on in a transform and fix problems
  • allows users to discover what has happened in an historic run