Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье представлены функции отладчика Visual Studio в пошаговом руководстве. Если требуется более высокий уровень представления функций отладчика, ознакомьтесь с обзором отладчика Visual Studio. При отладке приложения обычно это означает, что приложение запущено с подключенным отладчиком. При выполнении этой задачи отладчик предоставляет множество способов узнать, что делает ваш код во время выполнения.
- Пошагово проходите по коду и просматривайте значения, хранящиеся в переменных.
- Задайте для переменных контрольные значения, чтобы увидеть, когда изменяются значения.
- Проверьте путь выполнения кода, чтобы узнать, выполняется ли ветвь кода.
Если в этом упражнении вы впервые попытались выполнить отладку кода, может потребоваться прочитать Отладка для абсолютных новичков.
Хотя демонстрационная версия приложения в этой статье использует Visual Basic, большинство функций применяются к C#, C++, F#, Python, JavaScript и другим языкам, поддерживаемым Visual Studio. F# не поддерживает функцию правки и продолжения выполнения. F# и JavaScript не поддерживают окно Autos. Снимки экрана находятся в Visual Basic.
Изучив это руководство, вы:
- Запустите отладчик и достигните точек останова
- Изучите команды для пошаговой работы с кодом в отладчике
- Просмотр переменных в подсказках и окнах отладчика
- Изучите стек вызовов
Предпосылки
Необходимо установить Visual Studio, включая кроссплатформенную рабочую нагрузку разработки .NET Core .
- Если вам нужно установить Visual Studio, для бесплатной версии см. статью "Скачивание Visual Studio".
- Если вам нужно установить рабочую нагрузку, но у вас уже есть Visual Studio, перейдите в раздел "Сервис>получения инструментов и компонентов...", который открывает установщик Visual Studio. Выберите компонент разработки настольных приложений .NET, а затем выберите Изменить.
Создание проекта
Сначала создайте проект консольного приложения .NET Core. Тип проекта содержит все нужные файлы шаблона еще до того, как вы что-либо добавите!
Откройте Visual Studio. Если окно запуска не открыто, выберите Файл>Окно запуска.
В окне запуска выберите Создание нового проекта.
В окне создания проекта в поле поиска введите консоль. Затем выберите Visual Basic из списка языков и выберите Windows из списка платформ.
После применения фильтров языка и платформы выберите шаблон консольного приложения для .NET Core и нажмите кнопку "Далее".
Замечание
Если вы не видите шаблон консольного приложения, его можно установить из окна Создание нового проекта. В сообщении "Не найти то, что вы ищете?" , выберите ссылку "Установить дополнительные средства и функции ". Затем в установщике Visual Studio выберите рабочую нагрузку разработки для классической платформы .NET.
В окне "Настройка нового проекта " для имени проекта введите начало отладки. Затем выберите Далее.
В окне "Дополнительные сведения" убедитесь, что для платформы выбран .NET 10.0, а затем нажмите кнопку "Создать".
Откройте Visual Studio. Если окно запуска не открыто, выберите Файл>Окно запуска.
В окне запуска выберите Создание нового проекта.
В окне создания проекта в поле поиска введите консоль. Затем выберите Visual Basic из списка языков и выберите Windows из списка платформ.
После применения фильтров языка и платформы выберите шаблон консольного приложения для .NET Core и нажмите кнопку "Далее".
Замечание
Если вы не видите шаблон консольного приложения, его можно установить из окна Создание нового проекта. В сообщении "Не найти то, что вы ищете?" , выберите ссылку "Установить дополнительные средства и функции ". Затем в установщике Visual Studio выберите рабочую нагрузку разработки для классической платформы .NET.
В окне "Настройка нового проекта " для имени проекта введите начало отладки. Затем выберите Далее.
В окне "Дополнительные сведения" убедитесь, что для платформы выбран .NET 8.0, а затем нажмите кнопку "Создать".
Visual Studio открывает новый проект.
Создание приложения
В 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
Запустите отладчик!
Нажмите клавишу 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В этом руководстве вы внимательно изучите это приложение с помощью отладчика и ознакомьтесь с функциями отладчика.
Остановите отладчик, нажав клавишу SHIFT + F5 или нажав красную кнопку "Остановить отладку " на панели инструментов отладки.
В окне консоли нажмите клавишу, чтобы закрыть окно консоли.
Установка точки останова и запуск отладчика
ForВ циклеMainфункции установите точку останова, щелкнув левое поле в следующей строке кода:name += letters(i)Появится красный круг, в котором устанавливается точка останова.
Точки останова являются одной из самых основных и важнейших функций надёжной отладки. Точка останова указывает, где Visual Studio приостанавливает выполнение кода. При приостановке можно просмотреть значения переменных или поведение памяти. Можно проверить, выполняется ли ветвь кода.
Нажмите клавишу F5 (Отладка > запуска отладки) или кнопку "Начать отладку " на панели инструментов отладки. Приложение запускается, а отладчик доходит до строки кода, где выставлена точка останова.
Желтая стрелка обозначает оператор, на котором остановился отладчик, что также приостанавливает выполнение приложения в той же точке выполнения. Эта инструкция еще не выполняется.
Если приложение еще не запущено, F5 запускает отладчик и останавливается в первой точке останова. В противном случае F5 продолжает запускать приложение до следующей точки останова.
Точки останова — это полезная функция, когда вы знаете строку кода или раздел кода, который необходимо подробно изучить. Сведения о различных типах точек останова см. в разделе "Использование точек останова".
Перемещайтесь по коду в отладчике с помощью пошаговых команд
В этой статье используются сочетания клавиш, так как это хороший способ быстро выполнять приложение в отладчике. В ней показаны эквивалентные команды, такие как команды меню, в скобках.
Хотя выполнение кода приостановлено в цикле
Forв методеMain, нажмите клавишу F11 (или дважды выберите шаг отладки>), чтобы перейти к вызовуSendMessageметода.После нажатия клавиши F11 дважды вы должны быть в этой строке кода:
SendMessage(name, a(i))Нажмите клавишу F11 еще раз, чтобы перейти к методу
SendMessage.Желтый указатель перемещается в метод
SendMessage.
F11 — это команда Step Into . Он продвигает исполнение приложения по одной инструкции за раз. F11 — это хороший способ изучения потока выполнения в наиболее подробной форме. По умолчанию отладчик пропускает неиспользуемый код. Дополнительные сведения см. в разделе Just My Code.
Предположим, что вы завершили исследование метода
SendMessage, и хотите выйти из метода, но остаться в отладчике. Это можно сделать с помощью команды Step Out .Нажмите Shift + F11 (или Выход из отладки>).
Эта команда возобновляет выполнение приложения и перемещает отладчик до тех пор, пока текущий метод или функция не возвращается.
Вы должны вернуться в
Forцикл в методеMain, приостановленный при вызовеSendMessageметода.Нажимайте клавишу F11 несколько раз, пока не вернетесь к вызову
SendMessageметода еще раз.Хотя выполнение кода приостановлено при вызове метода, один раз нажмите клавишу F10 (или выберите "Отладка > Перейти").
На этот раз отладчик не заходит в метод
SendMessage. F10 перемещает отладчик, не заходя в функции или методы вашего кода приложения. Код по-прежнему выполняется. Нажав F10 наSendMessageвызове метода вместо F11, вы пропустили код реализации дляSendMessage. Дополнительные сведения о различных способах перемещения по коду см. в разделе Навигация по коду вотладчика.
Навигация по коду с помощью функции «Запуск до щелчка»
Нажмите клавишу F5 , чтобы снова перейти к точке останова.
В редакторе кода прокрутите вниз и наведите указатель мыши на метод
Console.WriteLineв методеSendMessage, пока не появится зеленая кнопка Run to Click. Подсказка для кнопки показывает выполнение выполнения здесь.Снимок экрана, показывающий кнопку "Run to Click" с выделенной подсказкой с левой стороны окна редактора кода.
Нажмите кнопку "Запустить" для нажатия кнопки.
Отладчик переходит к методу
Console.WriteLine.Эта кнопка аналогична настройке временной точки останова. Запуск к щелчку удобно для быстрого обхода в видимом регионе кода приложения, который можно выбрать в любом открытом файле.
Быстро перезапустите приложение
Чтобы перезапустить приложение, нажмите сочетание клавиш CTRL + SHIFT + F5 . Это экономит время по сравнению с остановкой приложения и перезапуском отладчика. Отладчик приостанавливается на первом брейкпоинте, в который попадает выполняемый код.
Отладчик снова останавливается в точке останова, которую вы ранее задали внутри For цикла.
Инспектирование переменных с помощью подсказок
Отладчик имеет функции, позволяющие проверять переменные. Существуют различные способы проверки переменных. Часто при отладке вы пытаетесь выяснить, содержат ли переменные те значения, которые вы ожидаете от них в определённый момент времени.
Пока выполнение кода приостановлено в инструкции
name += letters[i], наведите указатель мыши наlettersпеременную. Отображается значение по умолчанию, значение первого элемента в массиве"f"c.Затем наведите указатель мыши на
nameпеременную, чтобы увидеть его текущее значение, пустую строку.Нажмите клавишу F5 (или Отладка>Продолжить) несколько раз, чтобы несколько раз повторить
Forцикл, останавливаясь снова в точке останова, и наведите курсор мыши на переменнуюnameкаждый раз, чтобы проверить ее значение.
Значение переменной изменяется с каждой итерацией цикла
For, отображая значенияf, а затемfr, а затемfreи т. д.Часто при отладке кода требуется быстрый способ проверить значения свойств переменных, чтобы убедиться, что они сохраняют ожидаемые значения. Рекомендации по работе с данными — это хороший способ сделать это.
Проверка переменных с помощью окон "Авто" и "Локальные"
Просмотрите окно "Автозапуск" в нижней части редактора кода.
Если он закрыт, откройте его, пока выполнение кода приостановлено в отладчике, выбрав "Отладка>Windows>Autos".
В окне "Автозапуск" отображаются переменные и их текущее значение. В окне "Автозапуск" отображаются все переменные, используемые в текущей строке или предыдущей строке. Ознакомьтесь с документацией, чтобы узнать особенности поведения в зависимости от языка.
Затем просмотрите окно "Локальные" на вкладке рядом с окном "Автозапуск ".
lettersРазверните переменную, чтобы отобразить элементы, содержащиеся в ней.
В окне Локальные отображаются переменные, которые находятся в текущей области действия; то есть текущий контекст выполнения.
Установка часов
Вы можете указать переменную или выражение, за которым вы хотите следить по мере выполнения кода, добавив его в окно «Контроль».
Пока отладчик приостановлен, щелкните переменную правой кнопкой мыши и нажмите кнопку
name"Добавить часы".Окно «Наблюдение» открывается по умолчанию в нижней части редактора кода.
Теперь, когда вы настроили просмотр переменной
name, пройдите по коду, чтобы увидеть изменение значения переменнойnameна каждой итерации циклаfor.В отличие от других окон переменных, окно Watch всегда показывает переменные, которые вы отслеживаете. Переменные вне области видимости отображаются как недоступные.
Дополнительные сведения об окне "Просмотр" см. раздел "Просмотр переменных в окнах 'Просмотр'.
Изучите стек вызовов
Пока выполнение кода приостановлено в цикле
For, выберите окно стека вызовов , которое по умолчанию открыто в правой нижней области.Если оно закрыто, откройте его, пока выполнение кода приостановлено в отладчике, выбрав Debug>Windows>Call Stack.
Выберите F11 несколько раз, пока не видите, что отладчик приостановится в методе
SendMessage. Посмотрите на окно стека вызовов.
В окне стека вызовов показан порядок вызова методов и функций. В верхней строке показана текущая функция. В этом примере речь идет о методе
SendMessage. Вторая строка показывает, чтоSendMessageбыл вызван изMainметода и т. д.Замечание
Окно стека вызовов похоже на окно отладки, как в некоторых средствах программирования, например, Eclipse.
Стек вызовов — это хороший способ изучить и понять поток выполнения приложения.
Вы можете дважды щелкнуть строку кода, чтобы перейти к этому исходному коду, что также изменяет текущую область под наблюдением отладчика. Это действие не продвигает отладчика.
Вы также можете использовать контекстные меню, вызываемые правым щелчком мыши в окне стек вызовов для выполнения других действий. Например, можно вставить точки останова в указанные функции, продвинуть отладчик с помощью Запуск до курсора и изучить исходный код. Дополнительные сведения см. в разделе "Практическое руководство. Проверка стека вызовов".
Изменение потока выполнения
Дважды нажмите клавишу F11, чтобы запустить
Console.WriteLineметод.При остановке отладчика на вызове метода
SendMessage, используйте мышь, чтобы схватить и переместить жёлтую стрелку или указатель выполнения в левой границе, и перетащите указатель вверх на одну строку до инструкцииConsole.WriteLine.Нажмите клавишу F11.
Отладчик повторно запускает
Console.WriteLineметод. Это действие отображается в выходных данных окна консоли.Изменив поток выполнения, можно протестировать различные пути выполнения кода или повторно запустить код без перезапуска отладчика.
Предупреждение
Часто вам нужно быть осторожным с этой функцией. В подсказке есть предупреждение. Вы также можете увидеть другие предупреждения. Перемещение указателя не может вернуть приложение в более раннее состояние приложения.
Нажмите клавишу F5 , чтобы продолжить запуск приложения.
Поздравляем с завершением работы с этим руководством!
Связанный контент
В этом руководстве вы узнали, как запустить отладчик, пошагово выполнить код и проверить переменные. Вам может потребоваться получить высокоуровневый обзор функций отладчика вместе со ссылками на дополнительные сведения.