If you work with 8-bit AVR MCUs but are not a fan of MPLAB X or Microchip Studio, then there are not too many open-source alternatives when you want to debug your program using as symbolic debugger. In particular, neither PlatformIO nor the Arduino IDE 2 offers debugging support for AVR MCUs (well, PlatformIO has a stub solution for some MCUs).
Based on the open-source Python library pymcuprog published by Microchip, I have developed a cross-platform GDB server for almost all 8-bit AVR chips (except for the XMegas). You can install it from
PyPI,
download binaries, clone the
GitHub repo, or, when working with the Arduino IDE 2, you simply have to add a
board package URL into the
Additional Boards Manager URLs field. It comes with SVD files that you can integrate into the IDE of your choice, which offers easy access to all the I/O registers. In contrast to its 'competitors', PyAvrOCD is much better at avoiding flash wear, does faster line-stepping, and avoids being interrupted while single-stepping. And it is darn easy to install.
The only additional hardware you need is a somewhat recent Microchip debug probe. If your debug probe is too recent, you may need to
downgrade it.
Have a look at the manual if you are interested:
https://pyavrocd.io.