Как пройти через весь блок кода? - PullRequest
3 голосов
/ 01 сентября 2009

Я хотел бы иметь возможность пропускать определенные части моего кода, когда я устанавливаю точки останова. Например, у меня есть блок кода, который повторяется 52 раза, чтобы создать колоду карт. Это работает должным образом, и я бы предпочел не нажимать F11, чтобы продолжать проходить через этот блок. Можно ли как-нибудь пропустить это, чтобы отладчик просто перешел к следующему вызову метода?

Язык и IDE - это C # в VS 2008.

Ответы [ 4 ]

5 голосов
/ 01 сентября 2009

Установите другую точку останова, в которой вы хотите оказаться, и нажмите F5:)

5 голосов
/ 01 сентября 2009

Выполните следующие действия

  • Щелкните правой кнопкой мыши первую строку после цикла
  • Выберите «Run to Cursor»

Это будет эквивалентно установке точки останова в этой строке, выполнению кода, как если бы вы нажали F5, а затем удалили точку останова, как только она была достигнута.

Примечание. Если выполнение кода цикла попадает в другую, реальную точку останова, выполнение останавливается там, а не там, где вы щелкнули. Если вы считаете, что это может произойти, просто отключите все точки останова, выполните описанный выше прием и снова включите все точки останова.

2 голосов
/ 01 сентября 2009

Если это опция, вы можете переместить этот код в функцию и применить к ней атрибут [DebuggerStepThrough], чтобы он всегда был пропущен во время отладки

Вроде так:

using System.Diagnostics;

namespace MyNamespace
{
    public class Utilities
    {
        [DebuggerStepThrough]
        public ThisIsAVeryLongMethod()
        {
            //
            // Code
            //
        }
    }
}

Теперь в вашем коде при прохождении отладчик не перейдет к методу и просто перейдет к следующей строке

ShortMethod1();
ThisIsAVeryLongMethod();
ShortMethod2();
2 голосов
/ 01 сентября 2009

Я не знаю ни одного способа пропустить блок, но вы можете поставить точку останова после блока или использовать запуск до курсора (думаю, Ctrl-F10).

...