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

Как использовать debugbreak() в С#?

Каков синтаксис и какое пространство/класс пространства имен необходимо импортировать? Дайте мне пример кода, если это возможно. Это было бы очень полезно.

4b9b3361

Ответ 1

Мне также нравится проверять, подключен ли отладчик - если вы вызываете Debugger.Break, когда нет отладчика, он будет запрашивать у пользователя, хочет ли он его подключить. В зависимости от поведения, которое вы хотите, вы можете вызвать Debugger.Break(), только если (или если нет), который уже прикреплен

using System.Diagnostics;

//.... in the method:

if( Debugger.IsAttached) //or if(!Debugger.IsAttached)
{
  Debugger.Break();
}

Ответ 2

Поместите следующее, где вам это нужно:

System.Diagnostics.Debugger.Break();

Ответ 4

вы можете использовать System.Diagnostics.Debugger.Break() для разрыва в определенном месте. Это может помочь в таких ситуациях, как отладка службы.

Ответ 5

Ответы @Philip Rieck и @John немного отличаются.

Джон...

#if DEBUG
  System.Diagnostics.Debugger.Break();
#endif

работает только в том случае, если вы скомпилированы с условным набором условных компиляций DEBUG.

Ответ Филлипа...

if( Debugger.IsAttached) //or if(!Debugger.IsAttached)
{
  Debugger.Break();
}

будет работать для любого отладчика, поэтому вы также дадите хакерам испуг.

Также обратите внимание на SecurityException, который он может выбросить, поэтому не допускайте, чтобы этот код выходил в дикую природу.

Другая причина, по которой нет...

Если отладчик не подключен, пользователя спрашивают, хотят ли они присоединить отладчик. Если пользователи говорят "да", отладчик запущен. Если отладчик подключен, отладчик сигнализируется событием точки прерывания пользователя и отладчик приостанавливает выполнение процесса так же, как если бы отладчик точка останова была удалена.

из https://msdn.microsoft.com/en-us/library/system.diagnostics.debugger.break(v=vs.110).aspx