I have the same CH32V307 board.
I reflash it by pressing "boot0" then "reset" buttons, which puts the board into the bootloader mode.
Then I use wchisp utility to load a new firmware: "whisp flash firmware.elf"
wchisp is here -
https://github.com/ch32-rs/wchisp, you can get binaries from the nightly builds.
In order to see the logs, I connect an external usb-serial converter to the PA9 pin, which is USART1 TX.
I use USB hub with Ethernet jack, which I plug to my Mac's USB-C socket, and enable "internet sharing".
This way, I get a simple development setup with minimum gear.
Photo attached.
The other possibility is to get an external wchlink, and connect it to the 4-pin connector at the side of the board, some soldering would be required. It'll give live debugging support. I did not do it yet cause still waiting for the wchlink to arrive.
Also, I mostly use printf-style debugging, so don't really fancy live debuggers.