I think I’m understand where you are coming from. From your screenshot of ST-Link Utility, it seems that you most likely have the wire hooked up correctly. The probe will not be able to read the CPUID if the connections are not correct. You can try to lower the connect speed to under 1MHz to see if that helps. Sometimes using higher speeds will flying lead will cause connection issues.
It is somewhat possible to debug code and set hardware breakpoints for Arduino using openocd and gdb. You can load the .elf file generated by Arduino into gdb and set breakpoints at functions, inspect memory, and single step through the code. The compiler will need to have debug symbols enabled, so you may need to add the -g switch to gcc if not already enabled.