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

Как я могу "работать до тех пор, пока эта переменная не изменится" при отладке?

При отладке моего С# я часто хочу знать , когда значение переменной изменяется, а затем исследует состояние программы.

В настоящее время я делаю это так:

  • Watch-list нарушающая переменная.
  • Физически спам F10 (ярлык для перехода по шагу), пока не увижу изменение значения.

Однако количество требуемых F10 является раздражающим.

Конечно, это было автоматизировано, подумал я. Но я не могу найти эту функцию в своем Microsoft Visual С# Express, что меня удивляет. В конце концов, Watch-list автоматически выделяет измененные значения ярко-красным цветом.

Я что-то пропустил?

4b9b3361

Ответ 1

Простой трюк для Express Edition:

private string myValue;
public string MyValue
{
  set
  {
    if (this.myValue != value) Debugger.Break();
    this.myValue = value;
  }
}

Ответ 2

Условные точки останова - это то, что вам нужно, но, похоже, они недоступны в Visual Studio Express.

В Visual Studio (не экспресс) способ, которым он работает, заключается в том, что вы создаете условную точку останова с выражением, равным вашему часовому значению, и "Изменено" в качестве условия останова.

Ответ 3

Вот как я это делаю в Visual Studio. Установите точку останова, нажав F9 или щелкнув по левому краю. Затем щелкните правой кнопкой мыши по красной точке, которая появится, и выберите команду "Условие". Существуют и другие варианты.

Однако это может не поддерживаться в Visual Studio Express.

Ответ 4

вы можете использовать условные точки останова

см. this

Ответ 5

Вы можете написать оператор if, который проверяет изменение и имеет точку прерывания в этом операторе if, поэтому он сначала разбивается, затем вы нажимаете "Продолжить", он продолжается до тех пор, пока он не достигнет этой точки останова.

Ответ 6

Используйте Debugger.Break на основе некоторого условия выполнения или пойдите правой кнопкой мыши на некоторой точке останова и выберите условный разрыв → изменил

Изменить: dunno об этом в Express

Ответ 7

  • Установите точку останова, где вы хотите, чтобы код приостанавливался
  • Откройте окно Breakpoints (Debug → Windows → Breakpoints)
  • Щелкните правой кнопкой мыши на точке останова и выберите Условие...
  • Задайте условие как имя переменной и выберите переключатель "Изменено".
  • Нажмите "ОК", а затем отлаживайте как обычно:)

Ответ 8

Если вы хотите поймать переменное изменение на некоторой точке останова, а не на то, чтобы точно поймать, где он был изменен, установите точку останова, щелкните его правой кнопкой мыши и выберите "Условие". Скажем, ваше имя переменной X и текущее значение равно A. Введите "X!= A" в поле условия.

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