встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик

Пошаговая отладка в Visual Studio. Рассказываем и показываем ОТ и ДО

встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик

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

Отладка кода в Visual Studio

Прежде чем запускать отладчик Visual Studio, не лишним будет проверить код редактором кода и визуально оценить. Нужно искать «красные» и «зеленые»линии. «Красные» линии — это ошибки. «Зеленые» — предупреждения. Это могут быть:

«Красные» волнистые линии нужно исправить — это поможет в дальнейшем уменьшить количество ошибок, найденных Visual Studio. А зеленые, если не получается исправить, то по крайней мере нужно тщательно изучить.

Как запустить отладчик Visual Studio

Чтобы запустить отладчик Visual Studio, нужно:

последовательность исполнения кода;

значение переменных и др.

Чтобы создать точку останова в отладчике, нужно кликнуть слева от интересующей вас строки кода или при помощи клавиши «F9».

Какая информация выводится отладчиком Visual Studio

Там вам будет доступна следующая информация:

В заключение

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

Источник

Краткое руководство. Отладка кода C# или Visual Basic с помощью отладчика Visual Studio

Отладчик Visual Studio реализует множество эффективных функций для отладки приложений. В этой статье вы ознакомитесь с некоторыми основными возможностями.

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

Откройте Visual Studio и создайте новый проект.

Если окно запуска не открыто, выберите Файл > Окно запуска. На начальном экране выберите Создать проект.

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

В верхней строке меню последовательно выберите Файл > Создать > Проект. В левой области диалогового окна Новый проект в разделе Visual C# выберите .NET Core, а затем в средней области выберите Консольное приложение (.NET Core). Введите имя, например MyDbgApp, и нажмите ОК.

Visual Studio создаст проект.

В Program.cs или Module1.vb замените код

Убедитесь в том, что в Visual Basic задан автоматически запускаемый объект Sub Main (Свойства > Приложение > Автоматически запускаемый объект).

Установка точки останова

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

Чтобы задать точку останова, щелкните в области слева от вызова функции doWork (или выберите строку кода и нажмите клавишу F9).

встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик

Нажмите клавишу F5 (или выберите Отладка > Начать отладку).

встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик

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

Навигация по коду

Чтобы продолжить работу отладчика, можно использовать различные команды. Здесь описываются полезные новые команды для навигации по коду, доступные с версии Visual Studio 2017.

Если выполнение приостановлено в точке останова, наведите указатель мыши на инструкцию c1.AddLast(20) и дождитесь, пока появится зеленая кнопка Выполнение до щелкнутоговстроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик, после чего нажмите кнопку Выполнение до щелкнутого.

встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик

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

В процессе пошагового выполнения кода обычно используются клавиши F10 и F11. Более подробные инструкции см. в статье Знакомство с отладчиком Visual Studio.

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

встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик

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

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

Изменение кода и продолжение отладки

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

Нажмите клавишу F10 (или выберите команду Отладка > Шаг с обходом) несколько раз, чтобы пройти вперед и выполнить измененный код.

встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик

При нажатии клавиши F10 отладчик каждый раз переходит вперед на одну инструкцию, однако при этом минует функции, не заходя в них (пропускаемый код в таком случае по-прежнему выполняется).

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

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

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

Источник

Учебник. Сведения об отладке кода C++ с помощью Visual Studio

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

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

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

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

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

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

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

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

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

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

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

В левой области диалогового окна Новый проект разверните узел Visual C++ и выберите Рабочий стол Windows. В средней области выберите Консольное приложение Windows. Назовите проект get-started-debugging.

Нажмите кнопку ОК.

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

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

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

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

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

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

встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик

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

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

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

Откройте файл get-started-debugging.cpp и замените все его содержимое по умолчанию следующим кодом:

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

Нажмите клавишу F5 (Отладка > Начать отладку) или кнопку Начать отладку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчикна панели инструментов отладки.

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

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

Остановите отладчик, нажав красную кнопку остановки встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик(SHIFT + F5).

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

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

В цикле for функции main установите точку останова, щелкнув левое поле следующей строки кода:

В месте установки точки останова появится красный круг встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик.

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

Нажмите клавишу F5 или кнопку Начать отладкувстроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Запустится приложение и отладчик перейдет к строке кода, где задана точка останова.

встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик

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

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

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

Переход по коду в отладчике с помощью пошаговых команд

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

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

встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик

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

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

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

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

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

встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик

Переход по коду с помощью команды «Выполнение до щелкнутого»

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

встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик

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

Нажмите кнопку Выполнение до щелкнутоговстроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик.

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

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

Нажмите кнопку Перезапустить встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчикна панели инструментов отладки (CTRL + SHIFT + F5).

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

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

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

При приостановке на операторе name += letters[i] наведите указатель мыши на переменную letters и увидите ее значение по умолчанию — size= <10>.

встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик

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

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

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

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

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

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

встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик

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

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

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

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

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

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

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

встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик

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

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

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

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

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

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

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

Отладчик повторно выполнит функцию std::wcout (вы увидите это в выходных данных окна консоли).

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

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

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

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

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

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

Источник

Принципы отладки для начинающих

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

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

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

Проанализируйте проблему, задавая себе правильные вопросы

Это поможет вам выяснить, в чем состоит проблема, прежде чем приступать к ее решению. Мы полагаем, что вы уже сталкивались с проблемами в коде, иначе вряд ли читали бы сейчас эту статью в поисках советов по его отладке! Итак, прежде чем начать отладку, проанализируйте проблему, которую вы пытаетесь решить:

Что именно должен был выполнить код?

Что произошло вместо этого?

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

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

Проверьте свои предположения

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

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

Правильно ли вы используете API? Даже если вы выбрали нужный API, он может использоваться неправильно.

Нет ли в вашем коде опечаток? Некоторые опечатки, например ошибки в написании имени переменной, могут быть незаметными, особенно при работе с языками, в которых не требуется объявление переменных перед их использованием.

Вносили ли вы изменения в код и могут ли они быть связаны с возникшей проблемой?

Должны ли объект или переменная содержать определенное значение (или определенный тип значения) и соответствует ли это действительности?

Известно ли назначение кода? Как правило, отладка кода, написанного другим разработчиком, дается гораздо сложнее. Если это не ваш код, возможно, для его эффективной отладки вам потребуется изучить, что он делает.

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

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

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

Очевидно, что ошибки и неверные результаты можно увидеть только после выполнения кода приложения. Кроме того, работа программы может завершиться неожиданно без каких-либо сообщений.

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

Чтобы перейти в режим отладки в Visual Studio, необходимо нажать клавишу F5 (также вы можете выбрать пункт меню Отладка > Начать отладку или нажать кнопку Начать отладку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчикв панели инструментов «Отладка»). Если возникает исключение, помощник по исправлению ошибок Visual Studio направит вас к точке его появления и предоставит другую необходимую информацию. См. дополнительные сведения об обработке исключений в коде в разделе Приемы и инструменты отладки.

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

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

Чтобы продемонстрировать это, мы рассмотрим пример кода, который уже содержит несколько ошибок. В этом случае мы используем C#, однако функции отладки также работают для Visual Basic, C++, JavaScript, Python и других поддерживаемых языков. Также предоставлен пример кода для Visual Basic, но снимки экрана приведены для C#.

Создание образца приложения с ошибками

Сейчас мы создадим приложение, которое содержит некоторые ошибки.

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

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

Visual Studio создаст консольный проект и откроет его в обозревателе решений (правая область).

Откройте файл Program.cs (или Program.vb) и замените все его содержимое по умолчанию следующим кодом. (Сначала выберите вкладку для нужного языка: C# или Visual Basic.)

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

название галактики, расстояние, тип галактики.

Запуск приложения

Нажмите клавишу F5 или кнопку Начать отладку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчикна панели инструментов «Отладка», которая расположена над редактором кода.

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

Вместо этого выводятся следующие данные.

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

Отладка приложения

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

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

Нажмите кнопку Перезапустить встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчикна панели инструментов отладки (CTRL + SHIFT + F5).

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

встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик

Изначально вы ожидаете, что в окно консоли будет выведено именно значение Spiral. Таким образом, вам следует проверить это значение в коде во время выполнения приложения. В этом сценарии мы используем неправильный API. Посмотрим, сможем ли мы исправить проблему во время выполнения кода в отладчике.

встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик

Чтобы выполнить отладку примера кода Visual Basic, пропустите несколько следующих шагов до инструкции, по которой нужно щелкнуть Перезапустить встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик.

встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик

Измените предшествующий код на следующий.

Нажмите кнопку Перезапустить встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчикна панели инструментов отладки (CTRL + SHIFT + F5), чтобы выполнить повторную компиляцию кода и снова запустить его.

Удалите точку останова, щелкнув ее кружок в левом поле (также для этого можно выбрать команду Точка останова > Удалить точку останова). После этого нажмите клавишу F5 для продолжения.

Приложение запускается и отображает выходные данные. Теперь все работает правильно, однако вы можете заметить еще одну неточность. Для галактики Small Magellanic Cloud, которая имеет тип Irregular, в консоли не выводится никакой тип.

Установите точку останова в этой строке кода перед инструкцией switch (перед инструкцией Select в Visual Basic).

Здесь задается тип галактики, поэтому нам необходимо изучить эту строку более пристально.

Нажмите кнопку Перезапустить встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчикна панели инструментов отладки (CTRL + SHIFT + F5) для перезапуска.

Отладчик приостановит работу в строке кода, где вы задали точку останова.

встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик

Нажмите клавишу F11 (выберите Отладка > Шаг с заходом или нажмите кнопку Шаг с заходом в панели инструментов «Отладка»).

При нажатии клавиши F11 отладчик переходит на одну инструкцию вперед и выполняет соответствующий код. Клавиша F10 (Шаг с обходом) имеет схожую функцию и также полезна при работе с отладчиком.

Нажимайте клавишу F11 до тех пор, пока вы не остановитесь в строке кода с инструкцией switch для значения «I» (инструкция Select для Visual Basic). Здесь вы увидите очевидную ошибку, связанную с опечаткой. Вы ожидали, что код будет выполнен дальше до места, где для MyGType задается тип галактики Irregular, однако вместо этого отладчик полностью пропускает этот код и приостанавливает работу в разделе default инструкции switch (инструкция Else для Visual Basic).

встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Смотреть картинку встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Картинка про встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик. Фото встроенный отладчик в visual studio может работать как отладчик уровня исходного кода так и отладчик

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

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

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

Сводка

Если вы сталкиваетесь с проблемой, воспользуйтесь отладчиком и командами пошагового выполнения, такими как F10 и F11, для поиска области кода, в которой возникают ошибки.

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

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

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

Проверьте, выполняет ли ваше приложение код, который вы ожидаете. (Так, в примере приложения должна была выполняться инструкция switch, устанавливающая тип галактики Irregular, однако нужный код был пропущен из-за опечатки.)

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

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

Из этой статьи вы узнали общие принципы отладки приложений. Теперь вы можете приступить к изучению других возможностей отладчика.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *