The debugger directives will modify or access the debugger control state. The debugger con-trol state consists of flags, spy points and break points. Debugger control state exists on the level of knowledge bases and on the level of Prolog engines. The knowledge base control state applies to the thread group of the knowledge base:
The flags state affects the debug mode and the visible tracing. Together with the spy points and break points, the Prolog interpreter determines the reached ports. For this purpose, the Prolog interpreter uses instrumented clause forks of the predicates. For reached ports, the Prolog interpreter calls the current debugger callback.
Whether any port of a predicate is reachable further depends on its call-site:
The knowledge base level control state of the debugger can be modified and accessed by the debugger directives from the module "default". This module is preloaded and therefore availa-ble without any further import.
The Prolog engine level control state of the debugger can be modified and accessed by the debugger directives from the module "attach". This module is not preloaded and needs there-fore an import before it can be used: