Вы говорите, что вам нужно знать, сколько раз определенный цикл выполняется.
Один из способов сделать это - разместить точку останова на одной из строк внутри цикла, которая выполняется каждый раз (не внутри какого-либо условного блока или другого вложенного цикла), запускающего приложение в режиме отладки (F9
ключевой ярлык), который приведет к остановке вашей программы после достижения этой точки останова.
Затем вы используете ключ F9
, чтобы переходить через эту точку останова на следующую и подсчитывать, сколько раз ваша программа останавливалась на этой конкретной точке останова.
Хотя выше подход прост в установке он не очень дружит, если у вас есть цикл с большим количеством итераций (несколько десятков), так как это может занять вам некоторое время, чтобы посчитать каждую итерацию вручную. Не говоря уже о том, что вы легко можете окупить себя.
Так, чтобы избежать вышеупомянутых проблем, вы можете попросить отладчика помочь вам с подсчетом. Как ты делаешь это?
Вы делаете это в два этапа.
На первом этапе вы помещаете одну точку останова в свою петлю, как в первом примере. Но на этот раз после того, как вы разместите его, вы нажмете правой кнопкой мыши и выберите Breakpoint Properties
из всплывающего меню. Это откроет диалог свойств точки останова, где вы можете определить различные свойства, которые влияют на то, что происходит, когда достигается точка останова.

Собственности, что вы заинтересованы здесь Pass count
.
Обычно это свойство используется для разрыва вашей программы после того, как определенная точка останова передается определенное время.
Но в нашем случае мы не заинтересованы в остановке нашей программы, а вместо этого рассчитываем количество проходов, поэтому вы должны установить ее значение выше ожидаемого числа итераций цикла, чтобы эта точка останова не вызывала программа для остановки вообще.
Затем следующим шагом является добавление дополнительной точки останова в первую строку, которая будет выполнена после цикла.
Итак, ваша установка теперь должна остановить вашу программу сразу после цикла, и вы можете оценить, сколько раз была первой точкой останова (одна внутри вашей петли), пройдя, перемещая курсор мыши над ней.
Как вы заметите, количество проходов отображается как Pass count: X of Y
, где X - это количество раз, которое точка останова уже передана, а Y - количество проходов, указанное вами в свойствах точки останова.
Этот второй подход делает подсчет итерации цикла намного проще, особенно если у вас есть несколько десятков или даже несколько сотен итераций цикла.
Но имейте в виду, что этот подход может использоваться только для подсчета числа итераций цикла при первом использовании цикла. Зачем?
Поскольку отладчик подсчитывает количество проходов точки останова с момента запуска программы. Таким образом, повторение ввода цикла позже означало бы, что отладчик будет продолжать отсчет с того места, где он был остановлен в последний раз.
Однако вы можете заставить отладчик сбросить счетчик, установив его на 0 и оставив программу остановленной на нем. После этого вы можете снова установить свойство breakpoint Pass count
на некоторое большее число.
ПРИМЕЧАНИЕ. Сброс счетчика прохода точки останова, как описано выше, требует, чтобы вы вступили в одну итерацию цикла, чтобы число возвращаемых результатов цикла было опущено на один (итерация цикла, в которой ваша программа остановилась, чтобы сбросить счетчик).
Вы говорите об простой отладке при разрывах строк, не так ли? И технически, даже если вы не отлаживаете строку за строкой, ваше приложение все равно выполняет одну строку за раз в любом случае (за поток). –
Показать панель «debug» и навести курсор на кнопки, чтобы увидеть подсказки. –
«мы использовали его так, чтобы при запуске он выполнял только одну строку за раз». Я не знаю, что вы спрашиваете, но помните, что вы можете установить «счетчик сеансов» на точки останова отладчика, так что он не останавливается на этой строке каждый раз. V удобно, если вы можете сузить то, что вас интересует, к N-й точке времени. – MartynA