Перепрыгивание через цикл while в режиме отладки - PullRequest
10 голосов
/ 17 мая 2010

Вот сценарий: я поставил точку останова в начале метода, который я хочу отладить ... сначала скажем, что в этом методе есть Part1, в которую я хочу перейти в / через некоторые коды. ... хорошо ... после этого есть цикл While, в который я НЕ заинтересован переходить / переступать через него, я просто хочу сказать отладчику, что вы сами запускаете этот цикл 10 раз и просто позвольте мне перейти к части 2 мой код, который начинается после этого цикла while, возможно ли сделать это с параметрами отладки?

так как то так:

BreakPoint : MyMethod
{
Part One of the code : Ok, lets debug it

While Loop : I do not care, Do not want to debug it

Part Two of the code: Yes, I want to debug it too 
}

Ответы [ 7 ]

20 голосов
/ 17 мая 2010

Щелкните правой кнопкой мыши строку кода, к которой вы хотите запустить, и выберите «Run To Cursor», или вы можете установить вторую точку останова после цикла и просто запустить.

Редактировать: Вы вроде задали два вопроса здесь. Приведенный выше метод позволит вам перешагнуть весь цикл, независимо от того, сколько итераций он прошел. Если вы хотите пройти через тело цикла только 10 раз, добавьте точку останова в последнем операторе цикла, щелкните правой кнопкой мыши по этой строке, нажмите «Точка останова», затем «Число совпадений», затем «Прерывание, когда число совпадений равно "и поставьте 10 в появившейся коробке. Это приостановит программу после выполнения цикла 10 раз (вам придется вручную переместить текущую инструкцию), но НЕ прервется, если цикл выполнится менее 10 раз (добавьте дополнительную точку останова после цикла, как я предлагал выше).

3 голосов
/ 17 мая 2010

Не совсем (например, выполнить цикл 10 раз), но вы можете получить что-то очень близкое к вашему желаемому поведению. Посмотрите на эти ссылки MSDN:

http://msdn.microsoft.com/en-us/library/system.diagnostics.debuggerstepthroughattribute.aspx http://msdn.microsoft.com/en-us/library/system.diagnostics.debuggerstepperboundaryattribute.aspx http://msdn.microsoft.com/en-us/library/system.diagnostics.debuggerstepthroughattribute.aspx

Надеюсь, это поможет!

3 голосов
/ 17 мая 2010

Вы можете установить точки останова до и после цикла while.

В предыдущей точке нажмите F5, чтобы "перейти" к следующей точке останова.

1 голос
/ 17 мая 2010

C # Директивы препроцессора

BreakPoint : MyMethod
{
Part One of the code : Ok, lets debug it

#if !DEBUG
While Loop : I do not care, Do not want to debug it
#endif

Part Two of the code: Yes, I want to debug it too 
}
1 голос
/ 17 мая 2010

Нет, я не верю, что вы можете делать то, что вы описываете, ваши единственные варианты - те, которые описаны другими авторами, хотя было бы здорово:

1 голос
/ 17 мая 2010

Добавьте точку останова после цикла и дайте ей продолжиться в эту точку останова.

1 голос
/ 17 мая 2010

Просто поставьте точку останова на части второй. После того, как вы закончите отладку части 1, нажмите run / f-5, и VS перейдет к следующей точке останова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...