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

Могу ли я установить точку останова, когда переменная получает определенное значение в .NET?

Я использую Visual Studio 2010, и я знаю, что эта функция доступна на С++.

Мне нужно отладить некоторый код, который изменяет переменную на несколько значений. Я хочу отлаживать код в конкретном случае, когда переменная получает определенное значение. Я знаю, что могу добавить if(var == value), но есть ли какой-нибудь элегантный способ сделать это?

Другой вопрос: могу ли я установить точку останова при изменении переменной вообще?

4b9b3361

Ответ 1

Конечно, можно установить условие, например, переменную, получающую определенное значение. Это известно как условие точки останова. Чтобы создать его, сделайте следующее.

  • Установите точку останова в точке изменения переменной
  • Щелкните правой кнопкой мыши точку останова и выберите "Условие"
  • Введите условное, как "theNewValue == 42"

Теперь точка останова будет срабатывать только тогда, когда ваша условная оценка имеет значение true.

Второй элемент, который вы запрашивали, разрыв, когда значение переменной изменяется по любой причине, называется точкой останова данных. Они доступны только для кода C++. Это не вариант в С#, VB.NET или любом другом управляемом языке.

Ответ 2

Пока вы используете версию Visual Studio, отличную от Express, вы можете достичь этого на С#, используя условие условия останова.

В диалоговом окне "Условие точки останова" введите правильное выражение в поле "Условие", например myLocalVariable > 1

и

... select Изменено, если вы хотите сломать, когда значение выражения изменилось.

Чтобы перейти к опции "Изменен", щелкните правой кнопкой мыши точку останова в окне "Точки останова" и выберите "Условие...", затем просмотрите снимок экрана ниже.

Has Changed option for breakpoint conditions

Ответ 3

Добавьте точку останова с F9 - щелкните правой кнопкой мыши и выберите "Condition..." - теперь вы можете добавить логическое условие, и точка останова будет только ударяться, если это условие оценивается как true.

Ответ 4

Это зависит от объема вашей точки останова. Если переменная не является локальной или не статической, вы не сможете.

Чтобы установить условие точки останова, щелкните его правой кнопкой мыши, и вы должны получить этот экран:

Enter image description here

Выберите условие...

Ответ 5

Вы можете использовать условные точки останова. Я знаю, что ваш вопрос специфичен для VS2010, но имейте в виду, что с VS2012 вы должны переключиться в режим управляемой совместимости, чтобы использовать условные точки останова в Visual Basic. Почему и как описано здесь:

switching-to-managed-compatibility-mode-in-visual-studio-2013

Ответ 6

Вы можете сделать обе эти вещи.

  • Установить точку останова в VS. Щелкните правой кнопкой мыши красную точку в поле и выберите "Добавить условие". Там вы можете сказать var==value и выбрать "Истина".
  • Возможно, вы можете достичь этого с помощью опции "Изменено" в диалоговом окне выше.