We have created a new, experimental debug adapter for the extension.
nRF Connect for VS Code extension currently uses the Cortex-Debug extension, which is a third-party debugging extension for all Cortex-M based embedded devices. Although this project has become a common VS Code extension for debugging embedded devices, we received an increasing number of reports about crashes and erratic behavior in the debugging experience with Nordic devices.
The distribution mechanism for VS Code extensions limits our ability to sufficiently test new releases of third-party extensions like Cortex-Debug. Due to the extension's large set of supported devices and its frequent releases, we do not think we will be able to support the project to a level where we can guarantee the best debugging experience. As a result, we have decided to gradually replace Cortex-Debug with Microsoft's debug adapter.
Microsoft's debug adapter is the back end for Visual Studio's GDB integration and their C/C++ VS Code extension's debugger. It is a mature project with a large user base, and offers a quick and stable debugger implementation.
As Microsoft's debug adapter does not exclusively target embedded devices, it is missing a few features from Cortex-Debug and struggles to keep up with some of the quirks of SEGGER's J-Link GDB Server. To address these issues and ensure that we are in control of the release cadence and quality, we are now distributing a debug adapter with the extension.
For this release, the new debug adapter is still experimental, and disabled by default. To control which debug adapter is being used, we have added a new nrf-connect.debugging.backend. When launching debugging from the Sidebar, or through the nrf-connect debug configuration, VS Code will use this setting to determine which debug adapter to use.