Подтвердить что ты не робот

Разница между Debugger.Launch и Debugger.Break

Какая разница между

Debugger.Launch();
Debugger.Break();

?

4b9b3361

Ответ 1

Чтение документации, похоже, что Launch ничего не делает, если отладчик подключен - на самом деле он не сломается (хотя я еще не подтвердил это).

Break просит запустить отладчик (если он не подключен) и выполняет перерыв.

В действительности, вряд ли у вас будет более одной точки Launch... если это.

Ответ 2

Запуск начнет отладчик, если он доступен. Но просто игнорируется, если нет доступных. Break отключит программу, если отладочный сервер недоступен.

Ответ 3

Более тонкие отличия:

  • Если отладчик уже подключен, Debugger.Launch является nop; в то время как Debugger.Break всегда будет разбит в отладчик.

  • Запуск отладчик фактически не разбивает в отладчик. Например, в Visual Studio, Debugger.Launch, присоединяет отладчика к запущенному процессу, но то вам все равно нужно сделать Debug | Перерыв в Visual Studio, чтобы отладчик.