This is true. Can you inspect the contents of View->Output->VisualGDB Launcher Output after an unsuccessful debugging session? It should normally show something like this:
VisualGDB: Executing predebug actions
VisualGDB: Deploying e:\PROJECTS\TEMP\test\test/Debug/test to /tmp/vgtest/test on raspberrypi...
VisualGDB: Launching gdbserver
VisualGDB: Run "gdbserver :2000 "$(DeployPath)" " in directory "$(DeployDir)" on pi@raspberrypi (SSH)
VisualGDB: Launching custom program console
VisualGDB: Launching gdb
VisualGDB: Executing postdebug actions
Then check that:
1) The file on the Windows machine exists and is readable under your account
2) The remote file does not exist, the remote directory does and the device has enough free space
If none of that provides clues, can you reproduce it with a “Hello, World” project? If yes, can you create an image of your SD card and send it to us so that we could reproduce it on our side?