Есть ли способ установить или кодировать контрольные точки условно? - PullRequest
6 голосов
/ 28 апреля 2010

Некоторое время я задавался вопросом - есть ли способ кодирования / программные точки останова ...? Условно? Например, могу ли я указать что-то вроде - «когда эта переменная станет этим значением, сломайте и откройте отладчик»? (Было бы весьма полезно, особенно в длинных циклах, когда вы хотите отлаживать выполнение цикла с поздним значением цикла.)

Полагаю, это может быть связано с IDE, поскольку отладка в разных IDE осуществляется по-разному ... Мне было бы интересно узнать, как это сделать в любой IDE, но особенно в Eclipse и Visual Studio.

Ответы [ 5 ]

5 голосов
/ 28 апреля 2010

Это определенно возможно в Visual Studio. Обычно вы можете щелкнуть на левом поле, чтобы вставить точку останова, а затем щелкнуть правой кнопкой мыши на этой точке останова. Одним из параметров в меню правой кнопки мыши является «Условие ...», и вы можете указать предикат, который сообщит отладчику только разрыв в этой точке останова, если предикат встречен.

3 голосов
/ 28 апреля 2010

Если условные контрольные точки не поддерживаются вашей IDE, добавьте оператор if и разбейте его.

if (variable == 3) {
    // Stub code to attach breakpoint.
    1 = 1;
}
3 голосов
/ 28 апреля 2010

В Visual Studio вы можете декларативно установить условную точку останова, которая похожа на обычную точку останова, но будет прерываться только при выполнении определенного условия. Условие может использовать локальные переменные и все, что доступно из того места, где установлена ​​точка останова. Просто щелкните правой кнопкой мыши любую точку останова (красная точка) и выберите «Условие ...».

Кроме того, языки .NET могут вызывать метод Debugger.Break() для программного прерывания выполнения. Это также можно сделать в операторе if:

if (count > 8 && Debugger.IsAttached)
   Debugger.Break();
2 голосов
/ 28 апреля 2010

Установка условной точки останова в Eclipse (спасибо за все ответы Visual Studio!):

Установите точку останова. Щелкните правой кнопкой мыши и выберите «Свойства точки останова ...». Отметьте «Включить условие» и введите свой код условия в текстовую область.

1 голос
/ 28 апреля 2010

Большинство IDE допускают условные точки останова по этой самой причине. В Visual Studio вы можете щелкнуть правой кнопкой мыши красную точку для точки останова на полях и открыть там диалоговое окно условий. Вы также можете получить диалоговое окно условия из окна точки останова в Visual Studio. Я не знаком с Eclipse.

...