I'm very glad if they have been helpful.
The debugging framework is available for use by any Arduino boards platform.
The developers of the "Arduino AVR Boards" platform of the Uno have not used that available framework to configured it for use with the Arduino IDE 2.x debugger. Because of this, you will find that the debugger button on the Arduino IDE 2.x toolbar is disabled and shows the message "Debugging is not supported..." on hover when you have the Uno selected from the boards menu.
This configuration was done on the experimental 3rd party Arduino boards platform mentioned in the discussion at the link I shared in my last reply:
As for whether the "Cortex-Debug" VS Code extension used for the Arduino IDE debugger fully supports the AVR architecture, that is something I'm not well qualified to talk about. The author of the extension did not design it with this architecture in mind, but the underlying protocol (gdb) at least is well standardized.
From the referenced discussion, it sounds like there is a problem, but it is possible to work around in a fairly hacky way:
https://github.com/arduino/arduino-ide/issues/87#issuecomment-775660437
The real problem is cortex-debug plugin. As I mentioned on Dec 17, the armToolchainPrefix is fixed in package.json, and the parameters calling debug server is hardcoded in openocd.ts.
My solution is, make a copy of avr-gdb, and name it as arm-none-eabi-gdb to cheat the cortex-debug. And since I'm compiling my own debug server, I just check if the parameters matches the hardcoded one from cortex-debug. If so, just replace them with correct ones.
These problems for me will not be a problem for most of the ARM based board, as the ARM board is using arm-none-eabi-gdb and real openocd. I can not blame cortex-debug because I'm using it for an unrelated target device.
So my dirty fix did work for 0.1.3 and the nightly build. The fixes are dirty but the user won't notice it. The setup process for end-user are fairly easy.