Перейти к содержанию

Отладка: как читать ошибки компилятора и исправлять баги

Программирование C++ Сложность 1/5

Начало урока

Отладка: как читать ошибки компилятора и исправлять баги

Сохраняй спокойствие, читай сообщение и исправляй баги маленькими шагами

Главная мысль: Баги делают все программисты -- даже эксперты, каждый день. Баг -- это просто ошибка в твоём коде. Хорошая новость в том, что C++ обычно сам говорит, что не так. Умение спокойно, без паники, читать эти сообщения -- один из самых полезных навыков, которые ты можешь развить.
К концу этой темы ты сможешь:
  • различать ошибки компиляции, ошибки компоновщика (линкера) и ошибки времени выполнения,
  • читать сообщение компилятора и находить файл, строку и причину,
  • понимать частые сообщения вроде expected ';', undeclared identifier и no matching function,
  • следовать спокойному пошаговому порядку поиска и исправления бага.

1. Путь от исходного кода к работающей программе

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

  1. Компиляция -- компилятор читает твой файл .cpp и превращает его в машинные инструкции. Если текст нарушает правила C++ (нет точки с запятой, имя написано с ошибкой), он останавливается здесь с ошибкой компиляции.
  2. Компоновка (линковка) -- линкер соединяет все части (твой код плюс код библиотек) в один запускаемый файл. Если функция была обещана, но так и не написана, ты получишь ошибку линкера.
  3. Выполнение -- готовая программа реально запускается. Если она стартует, но делает не то, или падает на середине, это ошибка времени выполнения.

Уже одно понимание того, какой из трёх этапов дал сбой, многое подсказывает о том, где искать.

твой файл main.cpp КОМПИЛЯЦИЯ проверка правил ЛИНКОВКА соединить части ЗАПУСК программа работает здесь ошибки компиляции здесь ошибки линкера здесь ошибки выполнения
Три этапа: проблема появляется на том этапе, чьё правило нарушено.

Продолжите этот урок на YourAIZone

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

В полном уроке

  • Объяснение целиком
  • Разобранные примеры
  • Частые ошибки и как их избежать
  • Тестовые вопросы: 15
  • ИИ-репетитор, который отвечает на вопросы по теме
  • Отслеживание прогресса для ученика, родителей и учителя