Отладка программ - это процесс поиска и устранения ошибок в коде. В этом уроке мы рассмотрим два важных инструмента отладки: степпинг и точки останова.
Степпинг (пошаговое выполнение)
Степпинг позволяет выполнять программу по одной инструкции за раз. Это помогает отследить выполнение программы и найти место, где происходит ошибка.
Основные команды степпинга:
- 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
Откройте Visual Studio и создайте новый проект консольного приложения C++.
Вставьте следующий код в файл .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;
}
- Установите точку останова на строке
int result = divide(x, y);
:
Щелкните левой кнопкой мыши на серой полосе слева от номера строки, или
Поставьте курсор на эту строку и нажмите F9
Запустите отладку, нажав F5 или выбрав “Отладка” > “Начать отладку” в меню.
Программа остановится на точке останова. Теперь вы можете использовать степпинг:
Нажмите F11 (Step Into), чтобы войти в функцию divide
Наведите курсор на переменные a и b, чтобы увидеть их значения
Внутри функции divide вы увидите, что b равно 0, что приведет к ошибке деления на ноль.
Нажмите F5, чтобы продолжить выполнение. Вы увидите, что программа аварийно завершится из-за исключения деления на ноль.
Теперь вернитесь в код и измените значение y на 2:
int y = 2;
Снова запустите отладку (F5) и пройдите через программу, используя F10 (Step Over) или F11 (Step Into).
На этот раз программа успешно выполнится, и вы увидите результат в консоли.
Совет: Во время отладки используйте окно “Локальные переменные” (View > Debug > Locals), чтобы следить за значениями всех переменных в текущей области видимости.