JavaRush /Курсы /Модуль 1: Python Core /Отладка программы

Отладка программы

Модуль 1: Python Core
10 уровень , 7 лекция
Открыта

8.1 Появление багов

Отладка программного обеспечения — это процесс поиска и исправления ошибок или багов в программе. Этот процесс является самой интересной и важной частью разработки программного обеспечения и помогает обеспечивать правильную работу программ.

История появления термина "bug"

Термин "bug" (ошибка) в контексте компьютерных программ впервые стал использоваться в 1940-х годах. Хотя сама концепция "багов" существовала и до появления компьютеров, обозначая механические неисправности в различных устройствах.

Первый задокументированный случай использования термина "bug" в компьютерной технике был с командой, работавшей на компьютере Mark II в Гарвардском университете в 1947(!) году. Команда обнаружила, что одно из реле машины не работало из-за того, что в него попала моль. Они удалили насекомое и записали это в журнал как "первый реальный случай обнаружения насекомого" (literal bug).

Хотя это и не было первым случаем использования термина "bug" для обозначения ошибки, этот инцидент стал известным и способствовал популяризации термина «bug».

Отладка программы

Отладка — это процесс поиска, диагностики и исправления багов в программном обеспечении. Процесс отладки включает несколько этапов:

  • Обнаружение ошибки: Определение симптомов, указывающих на наличие ошибки в программе.
  • Воспроизведение ошибки: Создание условий, при которых ошибка проявляется снова, чтобы лучше понять её природу.
  • Диагностика проблемы: Использование различных инструментов и методов для анализа кода и поиска причины ошибки.
  • Исправление ошибки: Внесение изменений в код для устранения ошибки.
  • Тестирование: Проверка исправления и тестирование программы, чтобы убедиться, что ошибка устранена и не появились новые проблемы.

Так что баг (bug) — это общее название для любых ошибок в программах, а дебаг (de-bug) — это процесс обнаружения и устранения этих самых ошибок.

8.2 Инструменты и методы отладки

Логирование

Добавление логов в код программы позволяет отслеживать её выполнение и получать информацию о состоянии переменных и операций в различных точках выполнения программы. Для логирования в Python есть отличная библиотека — logging.

Пример использования логирования:


import logging

# Настройка логирования для вывода отладочной информации
logging.basicConfig(level=logging.DEBUG)
            

def divide(a, b):
    # Логируем попытку деления
    logging.debug(f"Деление {a} на {b}")
    if b == 0:
        # Логируем ошибку, если b равно 0
        logging.error("Попытка деления на ноль!")
        return None

    # Выполняем деление, если b не равно 0
    return a / b
            
result = divide(10, 2)
print(result)

Использование отладчиков (Debuggers)

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

Популярные отладчики:

  1. GDB: GNU Debugger для C, C++ и других языков программирования.
  2. PDB: Встроенный отладчик Python.
  3. Visual Studio Debugger: Отладчик, встроенный в Microsoft Visual Studio.
  4. PyCharm Debugger: Отладчик, встроенный в IDE PyCharm для Python.

Пример использования PDB


import pdb

def faulty_function(a, b):
    pdb.set_trace()  # Установка точки останова
    result = a / b
    return result
            
faulty_function(10, 0)

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

Мы с вами будем изучать дебаг программ на примере отладчика встроенного в PyCharm.

8.3 Использование debug

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

Установка точек останова: Установите точки останова в коде, чтобы остановить выполнение программы в интересующих вас местах.

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

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

Исправление ошибок: Внесите изменения в код для устранения найденных ошибок.

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

Выглядит просто, не так ли? Вот в следующей лекции мы подробно по всем этапам и пройдемся :)

Комментарии (1)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
7 августа 2025
в Visual Studio Code - shift + enter - построчное выполнение кода