Как я могу:Создать точку останова, используя Условия?[C# Экспресс]

StackOverflow https://stackoverflow.com/questions/1030535

Вопрос

Я уже целую вечность вижу это в своей RSS-ленте Visual C # 2008:

http://lincolnfair.net/oldLincolnFair/mad.jpg

Я почти уверен, что это функция только для VS 2010, но мне было интересно, есть ли способ воспроизвести это в VS 2008?

Это было полезно?

Решение

Как и у @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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top