Открыть сервисСервис

Джеб — термин в программировании

Джеб (от англ. debug — отладка) — процесс поиска и устранения ошибок (багов) в компьютерных программах, а также совокупность инструментов и методов, применяемых для этой цели. Термин образован сокращением слова debug («устранение жуков»), что восходит к легенде о попавшей в реле компьютера Harvard Mark II мухе, замыкавшей цепь, — отсюда выражение debugging («искание жуков»). В русскоязычной среде слово «джеб» чаще используется как глагол («джебить» — отлаживать программу) или как обозначение процесса отладки в целом.

История происхождения термина

Легенда о «жуке» связана с 1947 годом, когда в реле компьютера Harvard Mark II была обнаружена мёртвая муха, вызвавшая сбой. Запись об инциденте была сделана в журнале лаборатории с пометкой «первый реальный случай отладки» (англ. first actual case of bug being found). Авторство термина debugging часто приписывают адмиралу Грейс Хоппер, хотя фактически слово использовалось и раньше. В 1950-е годы термин вошёл в активный употребление в среде программистов IBM и других компаний, а к 1960-м стал общепринятым обозначением процесса поиска ошибок.

Методы отладки

Отладка программного обеспечения опирается на ряд классических методов:

  • Полное прослеживание (tracing) — запись всех значений переменных и переходов управления на протяжении выполнения программы, что позволяет локализовать момент появления некорректного состояния.
  • Метод деления пополам (binary search) — последовательное исключение половин кода или данных для сужения области поиска ошибки.
  • Метод «воспроизведения» — создание минимального примера, воспроизводящего ошибку, и постепенное его упрощение.
  • Метод «отладки с остановками» — установка точек останова (breakpoints) и пошаговое выполнение программы.
  • Анализ логов — изучение журналов выполнения и сообщений об ошибках.

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

Для джеба используются специализированные инструменты, встроенные в среды разработки (IDE) или работающие автономно:

ИнструментНазначение
GDB (GNU Debugger)Отладка программ на C, C++, Fortran и других языках под Unix-системами
LLDBОтладчик, входящий в комплект LLVM
Visual Studio DebuggerОтладчик среды Visual Studio для .NET и C++
IntelliJ DebuggerОтладчик среды IntelliJ IDEA для Java и других JVM-языков
Chrome DevToolsОтладка JavaScript в браузере
pdb (Python)Стандартный отладчик интерпретатора Python

Современные отладчики поддерживают точку останова, пошаговое выполнение, просмотр и изменение переменных в рантайме, отладку удалённых процессов, а также анализ стека вызовов.

Отладка в российской разработке

В российской IT-отрасли отладка программного обеспечения является обязательным этапом жизненного цикла разработки. Отечественные компании и государственные структуры используют как зарубежные инструменты (GDB, Visual Studio), так и собственные разработки. В образовательных программах по информатике и программированию отладке уделяется значительное внимание: в школьных и вузовских курсах студенты осваивают GDB и отладчики сред разработки. Российские системы, например Альт Линукс и РЕД ОС, поставляются с комплектом отладочных утилит GNU.

Значение

Отладка занимает существенную часть трудозатрат при разработке программного обеспечения — по различным оценкам, от 30 до 90 % времени разработчика. Некорректная отладка может привести к скрытым ошибкам, проявляющимся в критических ситуациях, поэтому методы и инструменты джеба постоянно совершенствуются: появляются статические анализаторы кода, средства автоматического тестирования, системы непрерывной интеграции.

Интересные факты

  • Термин debugging был включён в словарь Оксфорда в 1940-х годах.
  • В 2016 году в музей Computer History Museum была передана муха, найденная в Harvard Mark II, — она считается одним из «первых жуков» в истории вычислительной техники.
  • Существует шутка, что «отладка — это искусство находить жуков, которые вы сами же и завели».

Источники

  • Герман С. — «Отладка программ» (Debugging, 2000)
  • Макконнелл С. — «Совершенный код» (Code Complete, 2004)
  • Статья «Debugging» в Wikipedia (англ.)
  • Статья «Отладка» в Большой российской энциклопедии
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru