Как мне: создать точку останова, используя условия? [C# Экспресс]
Я видел это в моем Visual C# 2008 RSS Feed теперь навсегда:
http://lincolnfair.net/oldLincolnFair/mad.jpg
Я уверен, что это только функция VS 2010, но мне было интересно, есть ли возможность повторить это в VS 2008?
3 ответа
Подобно @Relster, у меня есть фрагмент кода со следующим
#if DEBUG
if( node.Name == "Book" )
System.Diagnostics.Debugger.Break();
#endif
куда node.Name == "Book"
изменения в зависимости от состояния, которое я хочу проверить. #if DEBUG
Обертка гарантирует, что проверки никогда не делают, чтобы выпустить код.
Это также намного быстрее, чем использование условных точек останова в Visual Studio. Когда вы используете встроенную условную визуальную студию bp, нужно взломать приложение, приостановить все потоки, оценить выражение и определить, истинно ли оно каждый раз, когда оно достигает точки останова. В узком цикле это может быть разницей между почти полной производительностью и выполнением при сканировании.
Вы можете сделать это в VS 2008 тоже. Я уверен, что есть много способов сделать это, но один из них - щелкнуть правой кнопкой мыши на красной точке на полях существующей точки останова и выбрать condition...
, а затем просто дать ему условие, которое оценивает bool
и оно сломается, только если это правда. Условный оператор должен иметь доступ ко всему, что находится в области видимости в строке, где установлена точка останова.
В этом контекстном меню также есть другие параметры, которые позволяют вам фильтровать то, что вызовет разрыв (например, только определенные потоки), разрыв, основанный на количестве ударов по точке останова, запуск макросов при достижении точки останова и т. Д.
Другой способ сделать это - создать свои собственные условия и использовать вызов для:
System.Diagnostics.Debugger.Break();
Хотя он может быть не таким сложным, как способ установки точек останова VS2010, вы можете получить тот же эффект с минимальными накладными расходами кода. Просто не забудьте взять эту штуку, когда будете создавать код релиза.
Примечание. В VS2008 и VS2005 вы можете установить условную точку останова, установив обычную точку останова (F9 или двойной щелчок в канаве), а затем щелкнув правой кнопкой мыши по этой точке останова, чтобы установить "условие...". Возможность установки условных контрольных точек НЕ доступна в VS2008 Express Edition.