Recode supports enabling and disabling compiler optimizations at runtime. This is very useful for cases where you need to diagnose issues with optimised builds. In particular it allows you to watch local stack variables and step into inline functions that would otherwise be optimized away by the compiler.

Deoptimization can only be applied once the debug session has started. You cannot deoptimize any files before the debug session has begun.

To deoptimize a file, right click the code window of the file you wish to deoptimize and select DeoptimizeforRecode. The DeoptimizeforRecode menu item is a toggle allowing you to see the current state for the selected source file.

When you have applied DeoptimizeforRecode to all the source files you wish to deoptimize use the Recode button to apply the deoptimization. Once applied, stepping through the code in a deoptimized file will give you access to full debug information and inline function calls.

When you have finished debugging the deoptimized files, you can toggle ``Deoptimize for Recode``to enable optimisations once again. This can be useful for extremely performance critical code but is rarely needed in practice.