Key improvements on the debugger in the RTS and compiler:
- Performance of :steplocal was significantly improved – from unbearable to usable in large projects (e.g. such as stepping through GHC itself)
- Support for stepping out of functions to the caller was introduced, together with the
:stepoutGHCi command (see it in the user manual) - Add breakpoints to every line in a do-block
- Internal support for per-thread breakpoints (part of the multi threaded debugging goal)
- The GHC API now exposes the primitives necessary to implement the debugger application with editor integration we’re developing (to be announced!)
Unfortunately, many changes beyond these ones didn’t make the 9.14.1 release. Specifically, step-out in 9.14 has some quirks and should be considered a tech preview. The follow up work is in !14534. We also landed some internal refactorings in 9.14.1 which facilitate further work on the debugger.
Thanks for pointing this out @Darwin226