Qual è la differenza traDifferenza tra Debugger.Launch e Debugger.Break
Debugger.Launch();
Debugger.Break();
?
Qual è la differenza traDifferenza tra Debugger.Launch e Debugger.Break
Debugger.Launch();
Debugger.Break();
?
Leggere la documentazione, suona come Launch
non fa nulla se il debugger è collegato - in realtà non è interruzione (anche se non l'ho verificato).
Break
chiede 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.
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.
più sottili differenze:
Se un debugger è già allegato, Debugger.Launch è un nop; mentre Debugger.Break
interromperà sempre nel debugger.
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.
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