2010-09-21 8 views

risposta

18

Leggere la documentazione, suona come Launch non fa nulla se il debugger è collegato - in realtà non è interruzione (anche se non l'ho verificato).

Breakchiede per lanciare il debugger (se non in allegato), e fa fare la pausa.

In realtà, è improbabile che tu abbia più di un punto Launch ... se quello.

14

Avvio avvia un debugger quando ne è disponibile uno. Ma è semplicemente ignorato se non ce ne sono disponibili. Break interromperà il programma se nessun debugger è disponibile.

+0

Soprattutto il suggerimento per l'arresto è utile. Ho appena scoperto che la mia versione della versione di rilascio si è bloccata a causa di un debug.break dimenticato. Pensavo che le chiamate sarebbero state eseguite solo nella versione di debug ... Ho sbagliato ... – Sascha

8

più sottili differenze:

  1. Se un debugger è già allegato, Debugger.Launch è un nop; mentre Debugger.Break interromperà sempre nel debugger.

  2. Avvio di un debugger in realtà non si interrompe nel debugger. Ad esempio, in Visual Studio, Debugger.Launch allegherà un debugger al processo in esecuzione, ma quindi è ancora necessario eseguire un debug | Interruzione in Visual Studio per interrompere effettivamente sotto il debugger.