====== Conditionally Debuggable lDebug ====== The "go everywhere, do everything" theme of lDebug has [[https://hg.pushbx.org/ecm/ldebug/rev/b811a771edf4|gained a new feature]]: Conditionally Debuggable builds allow to switch between the non-debuggable mode (handlers are hooked when the debugger starts up and unhooked only when it terminates), and the debuggable mode. In the debuggable mode, the prior debugger's handlers are preserved in most of the debuggable application. Only when calling the ''run'' function, the debuggable debugger sets up its own handlers. That means a great majority of the debuggable's code can be debugged using another instance of lDebug. Traditionally, FreeDOS Debug would require a lower-level debugger like one built into a virtual machine to be debugged. In recent years build options were added to never hook interrupts 1 (trace interrupt) and 3 (breakpoint interrupt), allowing to debug most parts. However, these options imply that you cannot actually run a debuggee and have it return control to the instance that is to be debugged. {{tag>ldebug options}} ~~DISCUSSION~~