Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве представлены средства отладки, доступные в Visual Studio.
Это важно
Все сочетания клавиш основаны на значениях по умолчанию из Visual Studio. Варианты горячих клавиш могут варьироваться. Для получения дополнительной информации см. раздел Горячие клавиши в Visual Studio.
В этом руководстве представлены средства отладки, доступные в Visual Studio Code для работы с приложениями .NET.
В этом руководстве представлены средства отладки, доступные в #REF! Codespaces для работы с приложениями .NET.
Предпосылки
Это руководство работает с консольным приложением, которое вы создаете в Создание консольного приложения .NET.
Используйте конфигурацию сборки отладки
Debug и Release являются встроенными конфигурациями сборки Visual Studio. Вы используете конфигурацию Debug для отладки и конфигурацию Release для окончательного дистрибутива.
В конфигурации отладки программа компилируется с полной символьной отладочной информацией и без оптимизации. Оптимизация усложняет отладку, так как связь между исходным кодом и созданными инструкциями более сложна. Конфигурация выпуска программы не содержит символьных сведений об отладке и полностью оптимизирована.
По умолчанию Visual Studio использует конфигурацию сборки отладки, поэтому перед отладкой не нужно изменять ее.
Запустите Visual Studio.
Откройте проект, который вы создали при Создании консольного приложения .NET.
Текущая конфигурация сборки отображается на панели инструментов. На следующем рисунке панели инструментов показано, что Visual Studio настроен для компиляции версии отладки приложения:
Установка точки останова
Точка останова временно прерывает выполнение приложения до выполнения строки с точкой останова.
Задайте точку останова в строке, отображающей имя, дату и время, щелкнув на левой границе окна кода в этой строке. Левое поле находится слева от номеров строк. Другие способы задать точку останова — переместить курсор на строку кода и нажать клавишу F9 или выбрать ОтладкаПереключить точку останова в строке меню.
Как показано на следующем рисунке, Visual Studio указывает строку, на которой установлена точка останова, выделяя её и отображая красную точку в левом поле.
Нажмите клавишу F5, чтобы запустить программу в режиме отладки. Другой способ начать отладку — выбрать ОтладкаНачать отладку в меню.
Введите строку в окне консоли, когда программа запрашивает имя, а затем нажмите клавишу ВВОД.
Выполнение программы останавливается, когда она достигает точки останова и до выполнения метода . В окне Локальные отображаются значения переменных, определенных в методе, который выполняется в данный момент.
Запустите Visual Studio Code.
Откройте папку проекта, который вы создали в Создание консольного приложения .NET.
Откройте файл Program.cs.
Задайте точку останова в строке, отображающей имя, дату и время, щелкнув левое поле окна кода. Левое поле находится слева от номеров строк. Другие способы настройки точки останова — это нажатие клавиши F9 или выбор ЗапускПереключить точку останова в меню при выборе строки кода.
Visual Studio Code указывает строку, в которой задается точка останова, отображая красную точку в левом поле.
набор точек останова
Откройте Codespace #REF!, который вы создали в Создании консольного приложения .NET.
Откройте файл HelloWorld.cs .
Задайте точку останова в строке, отображающей имя, дату и время, щелкнув левое поле окна кода. Левое поле находится слева от номеров строк. Вы также можете задать точку останова, нажав клавишу F9 , пока выбрана строка кода.
набор точек останова
Запуск отладки
Выполнение программы останавливается, когда она достигает точки останова, как описано в предыдущем разделе. В окне Локальные отображаются значения переменных, определенных в методе, который выполняется в данный момент.
Debug и Release являются встроенными конфигурациями сборки .NET. Вы используете конфигурацию Debug для отладки и конфигурацию Release для окончательного дистрибутива.
По умолчанию параметры запуска Visual Studio Code используют конфигурацию сборки отладки, поэтому перед отладкой не нужно изменять ее.
Откройте представление отладки, выбрав значок отладки в меню слева.
Выберите Запуск и отладка. При появлении запроса выберите C#, а затем выберите C#: запустить стартовый проект. Другие способы запустить программу в режиме отладки— это нажатие клавиши F5 или выбор ВыполнитьНачать отладку из меню.
начать отладку
Если будет предложено выбрать конфигурацию запуска, выберите C#: Отладка активного файла.
Перейдите на вкладку консоли отладки, чтобы увидеть запрос "Как вас зовут?", который программа отображает перед ожиданием ответа.
Выберите вкладку "Консоль отладки"
Введите строку текста в окне консоли отладки в ответ на запрос имени, а затем нажмите клавишу Enter .
Выполнение программы останавливается, когда она достигает точки останова и до запуска метода . В разделе Локальные в окне переменных отображаются значения переменных, определенных в текущем методе.
достигнута точка останова, показаны локальные переменные
По умолчанию #REF! codespaces использует конфигурацию сборки отладки, поэтому перед отладкой не нужно изменять ее.
Откройте представление отладки, выбрав значок отладки в меню слева.
Выберите Запуск и отладка. При появлении запроса выберите C# в качестве отладчика и выберите C#: Отладка активного файла в качестве конфигурации запуска.
Перейдите на вкладку консоли отладки, чтобы увидеть запрос "Как вас зовут?", который программа отображает перед ожиданием ответа.
Введите строку текста в окне консоли отладки в ответ на запрос имени, а затем нажмите клавишу Enter .
Выполнение программы останавливается, когда она достигает точки останова и до запуска метода . В разделе Локальные в окне переменных отображаются значения переменных, определенных в текущем методе.
достигнута точка останова, показаны локальные переменные
Использование окна немедленного выполнения
Окно непосредственное даёт возможность взаимодействовать с приложением, которое вы отлаживаете. Вы можете интерактивно изменить значение переменных, чтобы узнать, как это влияет на программу.
Если окно Immediate не отображается, отобразите его, выбрав Debug>#REF!>Immediate.
Введите в окно немедленного действия и нажмите клавишу Enter.
Введите в окно немедленного действия и нажмите клавишу Enter.
В окне Немедленное отображается значение строковой переменной и свойства значения . Кроме того, значения переменных обновляются в окне Локальные переменные.
Нажмите F5, чтобы продолжить выполнение программы. Еще одним способом продолжить является выбор в меню ОтладкаПродолжить.
Значения, отображаемые в окне консоли, соответствуют изменениям, внесенным в окне немедленного выполнения.
Нажмите любой ключ, чтобы выйти из приложения и остановить отладку.
Использование консоли отладки
Окно консоли отладки позволяет взаимодействовать с приложением, которое вы отлаживаете. Вы можете изменить значение переменных, чтобы узнать, как это влияет на программу.
Выберите вкладку консоли отладки.
Введите в строку запроса в нижней части окна консоли отладки и нажмите Ввод.
Изменение значений переменных
Введите в нижней части окна консоли отладки и нажмите клавишу ВВОД.
В окне переменных
отображаются новые значения переменных и . Продолжайте выполнение программы, выбрав кнопку Продолжить на панели инструментов. Другим способом продолжения является нажатие клавиши F5.
Продолжить отладку
Значения в консольном окне соответствуют изменениям, внесённым в отладочной консоли.
Терминал с введенными значениями
Нажмите Enter, чтобы выйти из приложения и остановить отладку.
Установка условной точки останова
Программа отображает строку, в которую вводит пользователь. Что произойдет, если пользователь ничего не вводит? Это можно проверить с помощью полезной функции отладки, называемой условной точки останова.
Щелкните правой кнопкой мыши красную точку, представляющую точку останова. В контекстном меню выберите условия, чтобы открыть диалоговое окно "Параметры точки останова". Выберите поле для условий , если оно еще не выбрано.
Редактор, показывающий панель параметров точки останова — C#
Для условного выражения введите следующий код в текстовом поле.
string.IsNullOrEmpty(name)String.IsNullOrEmpty(name)Каждый раз при нажатии точки останова отладчик вызывает метод , и он прерывается в этой строке, только если вызов метода возвращает .
Вместо условного выражения можно указать количество попаданий, которое прерывает выполнение программы перед выполнением инструкции указанным числом раз. Другой вариант — указать условие фильтра , которое прерывает выполнение программы на основе таких атрибутов, как идентификатор потока, имя процесса или имя потока.
Нажмите кнопку Закрыть, чтобы закрыть диалоговое окно.
Запустите программу с отладкой, нажав клавиши F5.
В окне консоли нажмите клавишу ВВОД, когда вас попросят ввести имя.
Так как указанное условие ( либо , либо ) удовлетворено, выполнение программы останавливается при достижении точки останова и до выполнения метода .
Выберите окно Локальные, в котором отображаются значения переменных, которые являются локальными для выполняемого метода. В этом случае является методом, выполняющимся в данный момент. Обратите внимание, что значение переменной или .
Убедитесь, что значение является пустой строкой, введя следующую инструкцию в окне непосредственного выполнения и нажав клавишу Enter . Результатом является .
? name == String.Empty? String.IsNullOrEmpty(name)Вопросительный знак направляет непосредственное окно, чтобы оценить выражение.
немедленное окно, возвращающее значение true после выполнения инструкции — C#
Нажмите F5, чтобы продолжить выполнение программы.
Нажмите любую клавишу, чтобы закрыть окно консоли и остановить отладку.
Удалите точку останова, щелкнув по точке в левой панели окна редактирования кода. Другие способы удаления точки останова: нажатие клавиши F9 или выбор Отладка Переключить точку останова, находясь на строке кода.
Щелкните правой кнопкой мыши (Ctrl-щелкните на macOS) на красную точку, представляющую точку останова. В контекстном меню выберите Изменить точку останова, чтобы открыть диалоговое окно, позволяющее ввести условное выражение.
контекстное меню точки останова
Выберите в раскрывающемся списке, введите следующее условное выражение и нажмите клавишу ВВОД.
String.IsNullOrEmpty(name)Ввод условного выражения
Каждый раз при нажатии точки останова отладчик вызывает метод , и он прерывается в этой строке, только если вызов метода возвращает .
Вместо условного выражения можно указать количество срабатываний, которое прерывает выполнение программы перед тем, как инструкция выполнится указанное число раз. Другой вариант — указать условие фильтра , которое прерывает выполнение программы на основе таких атрибутов, как идентификатор потока, имя процесса или имя потока.
Запустите программу с отладкой, нажав клавиши F5.
На вкладке консоли отладки нажмите клавишу ВВОД при появлении запроса на ввод имени.
Так как указанное условие ( либо , либо ) удовлетворено, выполнение программы останавливается при достижении точки останова и до запуска метода .
В окне переменных
показано, что значение переменной равно или . Убедитесь, что значение является пустой строкой, введя следующую инструкцию в командной строке консоли отладки и нажав клавишу ВВОД . Результатом является .
name == String.EmptyНажмите кнопку "Продолжить" на панели инструментов, чтобы продолжить выполнение программы.
Нажмите клавишу Enter, чтобы выйти из программы и остановить отладку.
Удалите точку останова, щелкнув по точке в левой панели окна редактирования кода. Другие способы очистки точки останова— это нажатие клавиши F9 или выбор запуск переключение точки останова в меню во время выбора строки кода.
Если появится предупреждение о том, что условие точки останова будет потеряно, выберите Удалить точку останова.
Пошаговое выполнение программы
Visual Studio также позволяет пошагово проходить строки программы и отлаживать выполнение. Обычно вы бы установили точку останова и следили за выполнением программы через небольшой участок кода вашей программы. Поскольку эта программа небольшая, вы можете пройти по ней шаг за шагом.
Задайте точку останова в строке кода, отображающей запрос "Как вас зовут?".
Выберите шаг отладкив. Другим способом отладки одной инструкции за раз является нажатие клавиши F11.
Visual Studio выделяет и отображает стрелку рядом со следующей строкой выполнения.
На этом этапе окно локальных переменных показывает, что массив пуст, а и имеют значения по умолчанию. Кроме того, Visual Studio открыл пустое окно консоли.
Нажмите клавишу F11. Visual Studio выделяет инструкцию, содержащую назначение переменной
name. В окне локальные показано, что является , а в окне консоли отображается строка "Как вас зовут?".Ответьте на запрос, введя строку в окне консоли и нажав клавишу ВВОД. Консоль не отвечает, и введенная строка не отображается в окне консоли, но метод , тем не менее, записывает входные данные.
Нажмите клавишу F11. Visual Studio выделяет инструкцию, содержащую назначение переменной
currentDate. В окне Локальные отображается значение, возвращаемое вызовом метода . В окне консоли также отображается строка, введенная в запросе.Нажмите клавишу F11. В окне локальные отображается значение переменной после назначения из свойства . Окно консоли не изменилось.
Нажмите клавишу F11. Visual Studio вызывает метод Console.WriteLine(String, Object, Object). В окне консоли отображается отформатированная строка.
Выберите ОтладкаВыход из шага. Еще одним способом остановить пошаговое выполнение является нажатие клавиш ShiftF11.
В окне консоли отображается сообщение и ожидает нажатия клавиши.
Нажмите любую клавишу, чтобы закрыть окно консоли и остановить отладку.
Visual Studio Code также позволяет выполнять пошаговые строки по программе и отслеживать его выполнение. Обычно вы бы установили точку останова и следили за выполнением программы через небольшой участок кода вашей программы. Поскольку эта программа небольшая, вы можете пройти по ней шаг за шагом.
Задайте точку останова в строке кода, отображающей запрос "Как вас зовут?".
Нажмите клавишу F5 , чтобы начать отладку.
Visual Studio Code выделяет строку точки останова.
На этом этапе окно переменных
показывает, что массив пуст, а и имеют значения по умолчанию. Выберите Шаг внутрь на панели инструментов отладки или нажмите клавишу F11.
кнопка Step-Into
Visual Studio Code выделяет следующую строку.
Visual Studio Code запускает
Console.WriteLine, чтобы задать вопрос о введении имени и выделяет следующую строку выполнения. Следующая строка — это для . Окно переменных осталось без изменений, а на вкладке терминала отображается запрос "Как вас зовут?".Выберите шаг в или нажмите клавишу F11.
Visual Studio Code выделяет назначение переменной
name. В окне переменных показано, что по-прежнему .Ответьте на запрос, введя строку на вкладке терминала и нажав Enter.
Вкладка консоли отладки
может не отображать введенную строку при вводе, но метод будет записывать входные данные. Выберите шаг в или нажмите клавишу F11.
Visual Studio Code выделяет назначение переменной
currentDate. В окне переменных отображается значение, возвращаемое вызовом метода . На вкладке терминала отображается строка, введенная в запросе.Выберите шаг в или нажмите клавишу F11.
В окне переменных отображается значение переменной после присваивания из свойства .
Выберите шаг в или нажмите клавишу F11.
Visual Studio Code вызывает метод Console.WriteLine(String, Object, Object). В окне консоли отображается отформатированная строка.
Выберите шаг выхода или нажмите клавиши SHIFTF11.
кнопка Step-Out
В терминале отображается сообщение "Нажмите любой ключ для выхода..."
Нажмите любой ключ, чтобы выйти из программы.
Используйте конфигурацию сборки Release
После тестирования Debug версии вашего приложения необходимо скомпилировать и протестировать Release версию. Версия выпуска включает оптимизации компилятора, которые иногда могут негативно повлиять на поведение приложения. Например, оптимизации компилятора, предназначенные для повышения производительности, могут создавать условия гонки в многопоточных приложениях.
Чтобы создать и протестировать релизную версию консольного приложения, измените конфигурацию сборки на панели инструментов с отладка на релиз.
При нажатии клавиши
Чтобы собрать и протестировать Release версию вашего консольного приложения, откройте Терминал и выполните следующую команду:
dotnet run --configuration Release
Чтобы создать и проверить версию выпуска консольного приложения, выполните следующую команду в терминале:
dotnet run --configuration Release HelloWorld.cs
Дальнейшие шаги
В этом руководстве вы использовали средства отладки. В следующем руководстве вы публикуете развертываемую версию приложения.