Каков синтаксис и какое пространство имен/класс необходимо импортировать? Дайте мне пример кода, если это возможно. Это было бы большим подспорьем.
Как я могу использовать DebugBreak() в С#?
Ответы (5)
Мне также нравится проверять, подключен ли отладчик — если вы вызываете Debugger.Break, когда отладчик отсутствует, он предложит пользователю, хотят ли они его подключить. В зависимости от поведения, которое вы хотите, вы можете вызывать Debugger.Break() только в том случае, если (или если нет) он уже подключен
using System.Diagnostics;
//.... in the method:
if( Debugger.IsAttached) //or if(!Debugger.IsAttached)
{
Debugger.Break();
}
Поместите следующее, где вам это нужно:
System.Diagnostics.Debugger.Break();
#if DEBUG
System.Diagnostics.Debugger.Break();
#endif
#if DEBUG
! Это ужасно, когда dev. оставляет этот код в релизе.
- person 23W; 14.08.2018
Ответы @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
Вы можете использовать System.Diagnostics.Debugger.Break()
для разрыва в определенном месте. Это может помочь в таких ситуациях, как отладка службы.