Разница между Debugger.Launch и Debugger.Break
Какая разница между
Debugger.Launch();
Debugger.Break();
?
Ответы
Ответ 1
Чтение документации, похоже, что Launch
ничего не делает, если отладчик подключен - на самом деле он не сломается (хотя я еще не подтвердил это).
Break
просит запустить отладчик (если он не подключен) и выполняет перерыв.
В действительности, вряд ли у вас будет более одной точки Launch
... если это.
Ответ 2
Запуск начнет отладчик, если он доступен. Но просто игнорируется, если нет доступных. Break отключит программу, если отладочный сервер недоступен.
Ответ 3
Более тонкие отличия:
-
Если отладчик уже подключен, Debugger.Launch является nop; в то время как
Debugger.Break
всегда будет разбит
в отладчик.
-
Запуск
отладчик фактически не разбивает
в отладчик. Например, в
Visual Studio, Debugger.Launch
, присоединяет
отладчика к запущенному процессу, но
то вам все равно нужно сделать Debug |
Перерыв в Visual Studio, чтобы
отладчик.