Debugger runs within the Visual Studio IDE. It emulates the host runtime environment on the development workstation and enables to test the screens and logic before deploying the runtime system.
It performs Just-in-time (JIT) compilation of selected components that are debugged and does not require a full generate of the application. The reason a full generate is not required is because most of the components are never generated – they are interpreted.
It does not compile the LDL+ logic in the model. Instead, when logic is encountered in a debug session, it interprets it. So that, you can modify the logic during a debug session. For example, if you notice that a line of logic is incorrect, you can correct it and step through the logic again to test your changes, without closing the debug session.
The interpreted instance differs from the generated application only in that objects are constructed dynamically during interpretation and the LDL+ statements are executed by traversing the abstract syntax tree rather than the compiled code. However, the dynamically constructed objects inherit the standard behavior and elements from the same framework classes, use the same persistence implementation, and use the same classes representing the Agile Business Suite data types for their attributes, and the interpreted LDL+ executes the same methods of the class to implement the logic.