Как я могу использовать debugbreak() в C#?
Каков синтаксис и какое пространство имен / класс необходимо импортировать? Дайте мне пример кода, если это возможно. Это было бы очень полезно.
5 ответов
Я также хотел бы проверить, подключен ли отладчик - если вы вызываете Debugger.Break, когда отладчика нет, он подскажет пользователю, хотят ли они его подключить. В зависимости от поведения, которое вы хотите, вы можете вызывать Debugger.Break(), только если (или если нет) один из них уже подключен
using System.Diagnostics;
//.... in the method:
if( Debugger.IsAttached) //or if(!Debugger.IsAttached)
{
Debugger.Break();
}
Поместите следующее, где вам это нужно:
System.Diagnostics.Debugger.Break();
http://msdn.microsoft.com/en-us/library/system.diagnostics.debugger.break.aspx
#if DEBUG
System.Diagnostics.Debugger.Break();
#endif
Ты можешь использовать System.Diagnostics.Debugger.Break()
сломаться в определенном месте.. это может помочь в таких ситуациях, как отладка службы.
Ответы @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