Отладка программ - это процесс поиска и устранения ошибок в коде. В этом уроке мы рассмотрим два важных инструмента отладки: степпинг и точки останова.

Степпинг (пошаговое выполнение)

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

Основные команды степпинга:

  • Step Into (F11) - выполнить следующую инструкцию, заходя внутрь функций
  • Step Over (F10) - выполнить следующую инструкцию, не заходя внутрь функций
  • Step Out (Shift+F11) - выполнять до выхода из текущей функции

Точки останова (breakpoints)

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

Чтобы установить точку останова, щелкните на полосе слева от номера строки в редакторе кода.

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

Пример использования отладки

#include <iostream>

int divide(int a, int b) {
    return a / b;  // Потенциальное место для ошибки деления на ноль
}

int main() {
    int x = 10;
    int y = 0;
    
    int result = divide(x, y);  // Установите здесь точку останова
    
    std::cout << "Результат: " << result << std::endl;
    
    return 0;
}

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

Практикуйтесь в использовании этих инструментов отладки, чтобы стать более эффективным разработчиком C++!

Пошаговое руководство по отладке примера в Visual Studio

  1. Откройте Visual Studio и создайте новый проект консольного приложения C++.

  2. Вставьте следующий код в файл .cpp:


#include <iostream>

  

int divide(int a, int b) {

return a / b; // Потенциальное место для ошибки деления на ноль

}

  

int main() {

int x = 10;

int y = 0;

int result = divide(x, y); // Установите здесь точку останова

std::cout << "Результат: " << result << std::endl;

return 0;

}
  1. Установите точку останова на строке int result = divide(x, y);:
  • Щелкните левой кнопкой мыши на серой полосе слева от номера строки, или

  • Поставьте курсор на эту строку и нажмите F9

  1. Запустите отладку, нажав F5 или выбрав “Отладка” > “Начать отладку” в меню.

  2. Программа остановится на точке останова. Теперь вы можете использовать степпинг:

  • Нажмите F11 (Step Into), чтобы войти в функцию divide

  • Наведите курсор на переменные a и b, чтобы увидеть их значения

  1. Внутри функции divide вы увидите, что b равно 0, что приведет к ошибке деления на ноль.

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

  3. Теперь вернитесь в код и измените значение y на 2:


int y = 2;
  1. Снова запустите отладку (F5) и пройдите через программу, используя F10 (Step Over) или F11 (Step Into).

  2. На этот раз программа успешно выполнится, и вы увидите результат в консоли.

Совет: Во время отладки используйте окно “Локальные переменные” (View > Debug > Locals), чтобы следить за значениями всех переменных в текущей области видимости.

Перейти к следующему уроку →