Руководство. Отладка кода Visual Basic с помощью Visual Studio

В этом пошаговом руководстве рассматриваются возможности отладчика Visual Studio. Более полное описание функций отладчика см. в статье c Знакомство с отладчиком Visual Studio. Отладка приложения обычно означает запуск и выполнение приложения с подключенным отладчиком. При этом в отладчике доступно множество способов наблюдения за выполнением кода. Вы можете пошагово перемещаться по коду и просматривать значения, хранящиеся в переменных, задавать контрольные значения для переменных, чтобы отслеживать изменение значений, изучать путь выполнения кода, просматривать выполнение ветви кода и т. д. Если вы не знакомы с процессом отладки, перед выполнением задач в этой статье рекомендуется прочесть документ об отладке для начинающих.

Несмотря на то, что демонстрационное приложение написано на Visual Basic, большинство функций применимы к C#, C++, F#, Python, JavaScript и другим языкам, поддерживаемым Visual Studio (F# не поддерживает возможность "Изменить и продолжить"). F# и JavaScript не поддерживают окно Видимые). Снимки экрана приведены для Visual Basic.

В этом руководстве рассмотрены следующие задачи:

  • Запуск отладчика и попадание в точки останова.
  • Использование команд для пошагового выполнения кода в отладчике.
  • Проверка переменных в подсказках к данным и окнах отладчика.
  • Просмотр стека вызовов

Предварительные требования

У вас должна быть установлена среда Visual Studio 2019 и рабочая нагрузка Кроссплатформенная разработка .NET Core.

У вас должна быть установлена среда Visual Studio 2017 и рабочая нагрузка Кроссплатформенная разработка .NET Core.

Установите Visual Studio бесплатно со страницы скачиваемых материалов Visual Studio, если еще не сделали этого.

Установите Visual Studio бесплатно со страницы скачиваемых материалов Visual Studio, если еще не сделали этого.

Если вам нужно установить рабочую нагрузку, но вы уже используете Visual Studio, выберите пункт Средства > Получить средства и компоненты... , после чего запустится Visual Studio Installer. Запускается Visual Studio Installer. Выберите рабочую нагрузку Кроссплатформенная разработка .NET Core и затем элемент Изменить.

Установите Visual Studio бесплатно со страницы скачиваемых материалов Visual Studio, если еще не сделали этого.

Если вам нужно установить рабочую нагрузку, но вы уже используете Visual Studio, выберите пункт Средства > Получить средства и компоненты... , после чего запустится Visual Studio Installer. Запускается Visual Studio Installer. Выберите рабочую нагрузку .Разработка классических приложений .NET и затем элемент Изменить.

Создание проекта

Сначала вы создадите проект консольного приложения .NET Core. Для этого типа проекта уже имеются все нужные файлы шаблонов, что избавляет вас от лишней работы.

  1. Откройте Visual Studio 2017.

  2. В верхней строке меню последовательно выберите Файл > Создать > Проект.

  3. В левой области диалогового окна Новый проект разверните узел Visual Basic и выберите .NET Core. На средней панели выберите Консольное приложение (.NET Core) . Назовите проект get-started-debugging.

    Если шаблона проекта Console App (.NET Core) (Консольное приложение (.NET Core)) нет, выберите ссылку Открыть Visual Studio Installer в левой области диалогового окна Новый проект.

    Запускается Visual Studio Installer. Выберите рабочую нагрузку Кроссплатформенная разработка .NET Core и затем элемент Изменить.

  1. Запустите Visual Studio.

    Если окно запуска не открыто, выберите Файл > Окно запуска.

  2. На начальном экране выберите Создать проект.

  3. В поле поиска окна Создание проекта введите консоль. Затем выберите Visual Basic в списке языков и Windows в списке платформ.

    Применив фильтры по языку и платформе, выберите шаблон Консольное приложение для .NET Core и нажмите кнопку Далее.

    Снимок экрана: окно "Создание проекта" с введенным в поле поиска словом "консоль", а также "Visual Basic" и "Windows", выбранными в фильтрах "Язык" и "Платформа". Шаблон проекта "Консольное приложение" выбран.

    Примечание

    Если шаблон Консольное приложение отсутствует, его можно установить из окна Создание проекта. В сообщении Не нашли то, что искали? выберите ссылку Установка других средств и компонентов. После этого в Visual Studio Installer выберите рабочую нагрузку Кроссплатформенная разработка .NET Core.

  4. В поле Имя проекта окна Настроить новый проект введите get-started-debugging. Нажмите кнопку Далее.

  5. Выберите рекомендуемую версию целевой платформы (.NET Core 3.1) или .NET 5 и щелкните Создать.

    Новый проект открывается в Visual Studio.

  1. Запустите Visual Studio.

    Если окно запуска не открыто, выберите Файл > Окно запуска.

  2. На начальном экране выберите Создать проект.

  3. В поле поиска окна Создание проекта введите консоль. Затем выберите Visual Basic в списке языков и Windows в списке платформ.

    После применения фильтров "Язык" и "Платформа" выберите шаблон Консольное приложение для .NET Core, а затем нажмите кнопку Далее.

    Снимок экрана: окно "Создание проекта" с введенным в поле поиска словом "консоль", а также "Visual Basic" и "Windows", выбранными в фильтрах "Язык" и "Платформа". Шаблон проекта "Консольное приложение" выбран.

    Примечание

    Если шаблон Консольное приложение отсутствует, его можно установить в окне Создание проекта. В сообщении Не нашли то, что искали? выберите ссылку Установка других средств и компонентов. После этого в Visual Studio Installer выберите рабочую нагрузку Разработка классических приложений .NET.

  4. В поле Имя проекта окна Настроить новый проект введите get-started-debugging. Нажмите кнопку Далее.

  5. Убедитесь, что в окне Дополнительные сведения выбрана рекомендуемая целевая платформа (.NET 6.0), а затем нажмите кнопку Создать.

    Новый проект открывается в Visual Studio.

Создание приложения

  1. Откройте файл Program.vb и замените все его содержимое по умолчанию следующим кодом:

    Imports System
    
    Class ArrayExample
        Public Shared Sub Main()
            Dim letters As Char() = {"f"c, "r"c, "e"c, "d"c, " "c, "s"c, "m"c, "i"c, "t"c, "h"c}
            Dim name As String = ""
            Dim a As Integer() = New Integer(9) {}
    
            For i As Integer = 0 To letters.Length - 1
                name += letters(i)
                a(i) = i + 1
                SendMessage(name, a(i))
            Next
    
            Console.ReadKey()
        End Sub
    
        Private Shared Sub SendMessage(ByVal name As String, ByVal msg As Integer)
            Console.WriteLine("Hello, " & name & "! Count to " & msg)
        End Sub
    End Class
    

Запуск отладчика

  1. Нажмите клавишу F5 (Отладка > Начать отладку) или кнопку Начать отладку на панели инструментов отладки.

    При нажатии клавиши F5 происходит запуск приложения с присоединенным отладчиком. Но пока мы не сделали ничего особенного, чтобы проанализировать код. Поэтому приложение будет просто загружено, и вы увидите выходные данные консоли.

    Hello, f! Count to 1
    Hello, fr! Count to 2
    Hello, fre! Count to 3
    Hello, fred! Count to 4
    Hello, fred ! Count to 5
    Hello, fred s! Count to 6
    Hello, fred sm! Count to 7
    Hello, fred smi! Count to 8
    Hello, fred smit! Count to 9
    Hello, fred smith! Count to 10
    

    В этом руководстве мы более подробно рассмотрим приложение с отладчиком и познакомимся с возможностями отладчика.

  2. Остановите отладчик, нажав красную кнопку остановки (или сочетание клавиш SHIFT + F5).

  3. В окне консоли нажмите клавишу, чтобы закрыть его.

  1. Нажмите клавишу F5 (Отладка > Начать отладку) или зеленую кнопку Начать отладку на панели инструментов отладки.

    Снимок экрана: панель инструментов отладки с выделенной зеленой кнопкой "Начать отладку".

    При нажатии клавиши F5 происходит запуск приложения с присоединенным отладчиком. Но пока мы не сделали ничего особенного, чтобы проанализировать код. Поэтому приложение будет просто загружено, и вы увидите выходные данные консоли.

    Hello, f! Count to 1
    Hello, fr! Count to 2
    Hello, fre! Count to 3
    Hello, fred! Count to 4
    Hello, fred ! Count to 5
    Hello, fred s! Count to 6
    Hello, fred sm! Count to 7
    Hello, fred smi! Count to 8
    Hello, fred smit! Count to 9
    Hello, fred smith! Count to 10
    

    В этом руководстве мы более подробно рассмотрим приложение с отладчиком и познакомимся с возможностями отладчика.

  2. Остановите отладчик, нажав сочетание клавиш (SHIFT + F5) или красную кнопку Остановить отладку на панели инструментов отладки.

    Снимок экрана: панель инструментов отладки с выделенной красной кнопкой "Остановить отладку".

  3. В окне консоли нажмите клавишу, чтобы закрыть его.

Установка точки останова и запуск отладчика

  1. В цикле For функции Main установите точку останова, щелкнув левое поле следующей строки кода:

    name += letters(i)

    В месте установки точки останова появится красный круг .

    Точки останова — это один из самых простых и важных компонентов надежной отладки. Точка останова указывает, где Visual Studio следует приостановить выполнение кода, чтобы вы могли проверить значения переменных или поведение памяти либо выполнение ветви кода.

  2. Нажмите клавишу F5 или кнопку Начать отладку . Приложение запустится и отладчик перейдет к строке кода, где задана точка останова.

    Снимок экрана: окно редактора кода Visual Studio с остановленным в точке останова выполнением.

    Желтая стрелка представляет оператор, на котором приостановлен отладчик. В этой же точке приостанавливается выполнение приложения (этот оператор пока не выполнен).

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

    Точки останова полезны, если вам известны строка или раздел кода, которые вы хотите подробно изучить. Дополнительные сведения о различных типах точек останова, которые можно задать, например об условных точках останова, см. в разделе Использование точек останова.

  1. В цикле For функции Main установите точку останова, щелкнув левое поле следующей строки кода:

    name += letters(i)

    В месте установки точки останова появится красный круг.

    Точки останова — это один из самых простых и важных компонентов надежной отладки. Точка останова указывает, где Visual Studio следует приостановить выполнение кода, чтобы вы могли проверить значения переменных или поведение памяти либо выполнение ветви кода.

  2. Нажмите клавишу F5 (Отладка > Начать отладку) или кнопку Начать отладку на панели инструментов отладки. Приложение запустится и отладчик перейдет к строке кода, где задана точка останова.

    Снимок экрана: окно редактора кода Visual Studio с остановленным в точке останова выполнением.

    Желтая стрелка представляет оператор, на котором приостановлен отладчик. В этой же точке приостанавливается выполнение приложения (этот оператор пока не выполнен).

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

    Точки останова полезны, если вам известны строка или раздел кода, которые вы хотите подробно изучить. Дополнительные сведения о различных типах точек останова, которые можно задать, например об условных точках останова, см. в разделе Использование точек останова.

Здесь мы используем в основном сочетания клавиш, так как они позволяют быстро выполнять приложение в отладчике (эквивалентные команды, например команды меню, отображаются в круглых скобках).

  1. Во время приостановки в цикле For в методе Main дважды нажмите клавишу F11 (или выберите Отладка > Шаг с заходом), чтобы перейти к вызову метода SendMessage.

    После двойного нажатия клавиши F11 вы должны находиться на следующей строке кода:

    SendMessage(name, a(i))

  2. Еще раз нажмите клавишу F11, чтобы выполнить шаг с заходом в метод SendMessage.

    Желтый указатель перемещается в метод SendMessage.

    Снимок экрана: сеанс отладки в редакторе кода Visual Studio с приостановленным выполнением после применения шага с заходом для метода SendMessage.

    F11 — это команда Шаг с заходом, которая выполняет приложение с переходом к следующему оператору. Клавишу F11 удобно использовать для более детальной проверки потока выполнения. (Мы также покажем другие варианты более быстрого перемещения по коду.) По умолчанию отладчик пропускает непользовательский код (дополнительные сведения см. в статье об отладке в режиме "Только мой код").

    Предположим, что вы закончили изучать метод SendMessage и хотите выйти из него, но остаться в отладчике. Это можно сделать с помощью команды Шаг с выходом.

  3. Нажмите сочетание клавиш SHIFT + F11 (или выберите Отладка > Шаг с выходом).

    Эта команда возобновляет выполнение приложения (и работу отладчика) до возврата данных текущим методом или текущей функции.

    Вы должны вернуться в цикл For в методе Main, приостановленный на вызове метода SendMessage.

  4. Нажмите клавишу F11 несколько раз, пока не вернетесь к вызову метода SendMessage.

  5. Во время приостановки на вызове метода один раз нажмите клавишу F10 (или выберите Отладка > Шаг с обходом).

    Снимок экрана: сеанс отладки в редакторе кода Visual Studio с приостановленным выполнением после применения шага с выходом для метода SendMessage.

    Обратите внимание, что в этот раз отладчик не заходит в метод SendMessage. Клавиша F10 перемещает отладчик без захода в функции или методы в коде приложения (код продолжает выполняться). Нажав клавишу F10 (а не F11) в вызове метода SendMessage, мы пропускаем код реализации для SendMessage (пока это нас не интересует). Дополнительные сведения о различных способах перемещения по коду см. в разделе Навигация по коду в отладчике.

В этой статье мы используем сочетания клавиш, так как они позволяют быстро выполнять приложение в отладчике (эквивалентные команды, например команды меню, отображаются в круглых скобках).

  1. Во время приостановки в цикле For в методе Main дважды нажмите клавишу F11 (или выберите Отладка > Шаг с заходом), чтобы перейти к вызову метода SendMessage.

    После двойного нажатия клавиши F11 вы должны находиться на следующей строке кода:

    SendMessage(name, a(i))

  2. Еще раз нажмите клавишу F11, чтобы выполнить шаг с заходом в метод SendMessage.

    Желтый указатель перемещается в метод SendMessage.

    Снимок экрана: сеанс отладки в редакторе кода Visual Studio с приостановленным выполнением после применения шага с заходом для метода SendMessage.

    F11 — это команда Шаг с заходом, которая выполняет приложение с переходом к следующему оператору. Клавишу F11 удобно использовать для более детальной проверки потока выполнения. (Мы также покажем другие варианты более быстрого перемещения по коду.) По умолчанию отладчик пропускает непользовательский код (дополнительные сведения см. в статье об отладке в режиме "Только мой код").

    Предположим, что вы закончили изучать метод SendMessage и хотите выйти из него, но остаться в отладчике. Это можно сделать с помощью команды Шаг с выходом.

  3. Нажмите сочетание клавиш SHIFT + F11 (или выберите Отладка > Шаг с выходом).

    Эта команда возобновляет выполнение приложения (и работу отладчика) до возврата данных текущим методом или текущей функции.

    Вы должны вернуться в цикл For в методе Main, приостановленный на вызове метода SendMessage.

  4. Нажмите клавишу F11 несколько раз, пока не вернетесь к вызову метода SendMessage.

  5. Во время приостановки на вызове метода один раз нажмите клавишу F10 (или выберите Отладка > Шаг с обходом).

    Снимок экрана: сеанс отладки в редакторе кода Visual Studio с приостановленным выполнением после применения шага с выходом для метода SendMessage.

    Обратите внимание, что в этот раз отладчик не заходит в метод SendMessage. Клавиша F10 перемещает отладчик без захода в функции или методы в коде приложения (код продолжает выполняться). Нажав клавишу F10 (а не F11) в вызове метода SendMessage, мы пропускаем код реализации для SendMessage (пока это нас не интересует). Дополнительные сведения о различных способах перемещения по коду см. в разделе Навигация по коду в отладчике.

  1. Нажмите клавишу F5, чтобы снова перейти к точке останова.

  2. В редакторе кода прокрутите вниз и наведите указатель мыши на метод Console.WriteLine в методе SendMessage, чтобы слева появилась зеленая кнопка Выполнить до нажатия . В подсказке для кнопки выводится "Выполнить до этого места".

    Снимок экрана: выделенная кнопка "Выполнить до нажатия" с подсказкой в левой части окна редактора кода.

    Примечание

    Кнопка Выполнение до щелкнутого впервые появилась в Visual Studio 2017. (Если кнопка с зеленой стрелкой отсутствует, воспользуйтесь клавишей F11, чтобы переместить отладчик в нужное место.)

  3. Щелкните кнопку Выполнить до нажатия .

    Отладчик перемещается к методу Console.WriteLine.

    Использование этой кнопки аналогично установке временной точки останова. Функция Выполнение до щелкнутого удобна для быстрой работы в видимой области кода приложения (можно щелкнуть в любом открытом файле).

  1. Нажмите клавишу F5, чтобы снова перейти к точке останова.

  2. В редакторе кода прокрутите вниз и наведите указатель мыши на метод Console.WriteLine в методе SendMessage, чтобы слева появилась зеленая кнопка Выполнить до нажатия. В подсказке для кнопки выводится "Выполнить до этого места".

    Снимок экрана: выделенная кнопка "Выполнить до нажатия" с подсказкой в левой части окна редактора кода.

  3. Щелкните кнопку Выполнить до нажатия.

    Отладчик перемещается к методу Console.WriteLine.

    Использование этой кнопки аналогично установке временной точки останова. Функция Выполнение до щелкнутого удобна для быстрой работы в видимой области кода приложения (можно щелкнуть в любом открытом файле).

Быстрый перезапуск приложения

Щелкните кнопку Перезапустить на панели инструментов отладки (CTRL + SHIFT + F5).

Кнопка Перезапустить позволяет сэкономить время, затрачиваемое на остановку приложения и перезапуск отладчика. Отладчик приостанавливается в первой точке останова, достигнутой при выполнении кода.

Отладчик еще раз останавливается в точке останова, ранее заданной вами в цикле For.

Чтобы перезапустить приложение, нажмите сочетание клавиш CTRL + SHIFT + F5. Такое действие гораздо быстрее, чем остановка приложения и перезапуск отладчика. Отладчик приостанавливается в первой точке останова, достигнутой при выполнении кода.

Отладчик еще раз останавливается в точке останова, ранее заданной вами в цикле For.

Проверка переменных с помощью подсказок по данным

Функции, позволяющие проверять переменные, являются самыми полезными возможностями отладчика. Реализовывать эту задачу можно разными способами. Часто при попытке выполнить отладку проблемы пользователь старается выяснить, хранятся ли в переменных значения, которые требуются ему в определенное время.

  1. Во время приостановки в операторе name += letters[i] наведите указатель мыши на переменную letters, и вы увидите его значение по умолчанию, значение первого элемента в массиве и "f"c.

  2. Затем наведите указатель мыши на переменную name, чтобы просмотреть ее текущее значение — пустую строку.

  3. Несколько раз нажмите клавишу F5 (или выберите Отладка >Продолжить), чтобы выполнить несколько итераций по циклу For, каждый раз снова приостанавливая выполнение в точке останова и наводя указатель мыши на переменную name, чтобы просмотреть ее значение.

    Снимок экрана: остановленное выполнение отладки в редакторе кода с выделенной переменной Name и подсказкой с данными, отображающими значение fre.

    Значение переменной изменяется при каждой итерации цикла For — f, затем fr, fre и т. д.

    Часто при отладке требуется быстро проверить значения свойств в переменных, чтобы убедиться, что в них хранятся ожидаемые значения. Советы по данным — отличный способ это сделать.

Функции, позволяющие проверять переменные, являются самыми полезными возможностями отладчика. Реализовывать эту задачу можно разными способами. Часто при попытке выполнить отладку проблемы пользователь старается выяснить, хранятся ли в переменных значения, которые требуются ему в определенное время.

  1. Во время приостановки в операторе name += letters[i] наведите указатель мыши на переменную letters, и вы увидите его значение по умолчанию, значение первого элемента в массиве и "f"c.

  2. Затем наведите указатель мыши на переменную name, чтобы просмотреть ее текущее значение — пустую строку.

  3. Несколько раз нажмите клавишу F5 (или выберите Отладка >Продолжить), чтобы выполнить несколько итераций по циклу For, каждый раз снова приостанавливая выполнение в точке останова и наводя указатель мыши на переменную name, чтобы просмотреть ее значение.

    Снимок экрана: остановленное выполнение отладки в редакторе кода с выделенной переменной Name и подсказкой с данными, отображающими значение fre.

    Значение переменной изменяется при каждой итерации цикла For — f, затем fr, fre и т. д.

    Часто при отладке требуется быстро проверить значения свойств в переменных, чтобы убедиться, что в них хранятся ожидаемые значения. Советы по данным — отличный способ это сделать.

Проверка переменных с помощью окон "Видимые" и "Локальные"

  1. Взгляните на окно Видимые в нижней части редактора кода.

    Если оно закрыто, откройте его во время приостановки в отладчике, выбрав Отладка > Окна > Видимые.

    В окне Видимые отображаются переменные и их текущие значения. В окне Видимые отображаются все переменные, используемые в текущей или предыдущей строке (сведения о зависящем от языка поведении см. в соответствующей документации).

  2. Затем посмотрите на окно Локальные на вкладке рядом с окном Видимые.

  3. Разверните переменную letters, чтобы отобразить элементы, которые она содержит.

    Снимок экрана: окно "Локальные" с переменной letters, развернутой для отображения значения и типа содержащихся в ней элементов.

    В окне Локальные показаны переменные, которые находятся в текущей области, то есть текущем контексте выполнения.

  1. Взгляните на окно Видимые в нижней части редактора кода.

    Если оно закрыто, откройте его во время приостановки в отладчике, выбрав Отладка > Окна > Видимые.

    В окне Видимые отображаются переменные и их текущие значения. В окне Видимые отображаются все переменные, используемые в текущей или предыдущей строке (сведения о зависящем от языка поведении см. в соответствующей документации).

  2. Затем посмотрите на окно Локальные на вкладке рядом с окном Видимые.

  3. Разверните переменную letters, чтобы отобразить элементы, которые она содержит.

    Снимок экрана: окно "Локальные" с переменной letters, развернутой для отображения значения и типа содержащихся в ней элементов.

    В окне Локальные показаны переменные, которые находятся в текущей области, то есть текущем контексте выполнения.

Установка контрольного значения

  1. В основном окне редактора кода щелкните правой кнопкой мыши переменную name и выберите команду Добавить контрольное значение.

    В нижней части редактора кода откроется окно Контрольное значение. В окне Контрольное значение можно указать переменную (или выражение), которую необходимо отслеживать.

    Теперь у вас есть контрольное значение, заданное для переменной name, и по мере перемещения по отладчику вы можете наблюдать за изменением его значения. В отличие от других окон переменных, в окне Контрольное значение всегда отображаются просматриваемые вами переменные (они выделяются серым цветом, когда находятся вне области действия).

Просмотр стека вызовов

  1. Во время приостановки в цикле For щелкните окно Стек вызовов, которое по умолчанию открыто в нижней правой области.

    Если оно закрыто, откройте его во время приостановки в отладчике, выбрав Отладка > Окна > Стек вызовов.

  2. Несколько раз нажмите клавишу F11, пока отладчик не приостановится в методе SendMessage. Взгляните на окно Стек вызовов.

    Снимок экрана: окно "Стек вызовов" Visual Studio с вызовом метода SendMessage, выделенным в верхней строке.

    В окне Стек вызовов показан порядок вызова методов и функций. В верхней строке приведена текущая функция (в данном приложении метод SendMessage). Во второй строке показано, что функция SendMessage была вызвана из метода Main и т. д.

    Примечание

    Окно Стек вызовов аналогично перспективе "Отладка" в некоторых интегрированных средах разработки, например Eclipse.

    Стек вызовов хорошо подходит для изучения и анализа потока выполнения приложения.

    Дважды щелкните строку кода, чтобы просмотреть исходный код. При этом также изменится текущая область, проверяемая отладчиком. Это действие не перемещает отладчик.

    Для выполнения других задач можно воспользоваться контекстными меню из окна Стек вызовов. Например, можно вставлять точки останова в указанные функции, перемещать отладчик с помощью функции Выполнение до текущей позиции и изучать исходный код. Дополнительные сведения см. в разделе Практическое руководство. просмотреть стек вызовов.

  1. Во время приостановки в цикле For щелкните окно Стек вызовов, которое по умолчанию открыто в нижней правой области.

    Если оно закрыто, откройте его во время приостановки в отладчике, выбрав Отладка > Окна > Стек вызовов.

  2. Несколько раз нажмите клавишу F11, пока отладчик не приостановится в методе SendMessage. Взгляните на окно Стек вызовов.

    Снимок экрана: окно "Стек вызовов" Visual Studio с вызовом метода SendMessage, выделенным в верхней строке.

    В окне Стек вызовов показан порядок вызова методов и функций. В верхней строке приведена текущая функция (в данном приложении метод SendMessage). Во второй строке показано, что функция SendMessage была вызвана из метода Main и т. д.

    Примечание

    Окно Стек вызовов аналогично перспективе "Отладка" в некоторых интегрированных средах разработки, например Eclipse.

    Стек вызовов хорошо подходит для изучения и анализа потока выполнения приложения.

    Дважды щелкните строку кода, чтобы просмотреть исходный код. При этом также изменится текущая область, проверяемая отладчиком. Это действие не перемещает отладчик.

    Для выполнения других задач можно воспользоваться контекстными меню из окна Стек вызовов. Например, можно вставлять точки останова в указанные функции, перемещать отладчик с помощью функции Выполнение до текущей позиции и изучать исходный код. Дополнительные сведения см. в разделе Практическое руководство. просмотреть стек вызовов.

Изменение потока выполнения

  1. Дважды нажмите клавишу F11, чтобы запустить метод Console.WriteLine.

  2. Приостановив отладчик в вызове метода SendMessage, с помощью мыши захватите желтую стрелку (указатель выполнения) в левой части и переместите ее вверх на одну строку, обратно в Console.WriteLine.

  3. Нажмите клавишу F11.

    Отладчик повторно выполнит метод Console.WriteLine (вы увидите это в выходных данных окна консоли).

    Изменяя поток выполнения, можно решать множество задач, например тестировать различные пути выполнения кода или повторно выполнять код без перезапуска отладчика.

    Предупреждение

    Как правило, при работе с этой функцией необходимо соблюдать осторожность — вы увидите соответствующее предупреждение во всплывающей подсказке. Могут отображаться и другие предупреждения. При перемещении указателя предыдущее состояние приложения не возвращается.

  4. Чтобы продолжить выполнение приложения, нажмите клавишу F5.

    Поздравляем с завершением этого учебника!

Следующие шаги

В этом руководстве вы узнали, как запускать отладчик, осуществлять пошаговое выполнение кода и проверять переменные. Возможно, вы захотите получить более полное представление о функциях отладчика, а также воспользоваться ссылками на дополнительные сведения.