Я задавался вопросом, это некоторое время - является там способом кодировать/программировать точки останова...? Условно? Например, я могу указать что-то как - "когда эта переменная становится этим значением, повреждением, и откройте отладчик"? (Было бы довольно полезно, особенно в длинных циклах, когда Вы хотите к выполнению отладочного цикла последнего значения цикла.)
Я предполагаю, что это может быть определенным для IDE, так как отладка реализована по-другому в различных IDE... Мне было бы интересно знать, как сделать это в любом IDE, но конкретно в Eclipse и Visual Studio.
Это определенно возможно в Visual Studio. Обычно вы можете щелкнуть левое поле, чтобы вставить точку останова, а затем щелкнуть правой кнопкой мыши по этой точке. Одна из опций в меню, вызываемом при щелчке правой кнопкой мыши, - «Условие ...», и вы можете указать предикат, который сообщит отладчику только прерывание в этой точке останова, если предикат соблюден.
Большинство IDE допускают условные точки останова именно по этой причине. В Visual Studio вы можете щелкнуть правой кнопкой мыши красную точку для точки останова на поле и открыть диалоговое окно условия оттуда. Вы также можете перейти в диалоговое окно условия из окна точки останова в Visual Studio. Я не знаком с Eclipse.
Если условные точки останова не поддерживаются вашей IDE, добавьте оператор if и прервите его внутри.
if (variable == 3) {
// Stub code to attach breakpoint.
1 = 1;
}
Установка условной точки останова в Eclipse (спасибо за все ответы Visual Studio!):
Установите точку останова. Щелкните правой кнопкой мыши и выберите "Breakpoint Properties...". Установите флажок "Включить условие" и введите код условия в текстовую область.
В Visual Studio вы можете декларативно установить условную точку останова, которая похожа на обычную точку останова, но будет прерываться только при выполнении определенного условия. Условие может использовать локальные переменные и всё, что доступно с места установки точки останова. Просто щелкните правой кнопкой мыши любую точку останова (красная точка) и выберите "Условие...".
Кроме того, в языках .NET можно вызвать метод Debugger.Break()
, чтобы программно прервать выполнение. Это также можно сделать внутри оператора if
:
if (count > 8 && Debugger.IsAttached)
Debugger.Break();