If you do want to do debugging via gdb then you can add a JTAG or SWD interface.

The 1Bitsy is an STM32F415 based board (and I have a MicroPython board definition for it) that has a JTAG interface. If you look at the 1Bitsy schematics https://github.com/1Bitsy/1bitsy-hardwa ... ematic.pdf to use the JTAG you don't need any extra components (except perhaps a header).

Similarly, you only need to expose the SWDIO/SWCLK signals to use the SWD interface.

I have designed a few boards with the STM32 (407/429) (but also other ARMs) and standardised on using the Tag Connect TC2030 connection with either locking holes when there is room on the PCB, or just the 6 contacts only. It allows for +/-/SWDIO/SWCLK/RXD/TXD. It is time/cost/room saving and I personally find it a better choice than using the standard pin headers.

The UART (see drawing) is there for alternative DFU instead of USB, but mainly to have REPL available when not using the USB with MicroPython.