Die Returnwerte eines von einer Batch-Datei aufgerufenen Programmes findest du in der Umgebungsvariable "ERRORLEVEL". Vorsicht bei IF-Abfragen in der Batch-Datei, du musst die höheren Werte zuerst abfragen, sonst wird der Errorlevel zurückgesetzt.
Wenn die Batch-Datei eine Debug-Version deines Programmes aufruft, müssten gesetzte "Break Points" genauso greifen.
Ansonsten gibt es bei Visual Studio die Möglichkeit, dich Debug-Mässig an einen Prozess "anzuhängen" bzw. zu "attachen". Damit kann man auch indirekt debuggen (wenn das zu debuggende Programm von einem anderen aufgerufen wird).