Python:
Использование отладчика

Как это сделать:

Давайте разберём использование pdb, встроенного отладчика Python. Представьте файл, buggy.py, с коварной ошибкой:

def add_one(number):
    result = number ++ 1
    return result

print(add_one(7))

Запустив этот скрипт, вы ожидаете увидеть 8, но получаете лишь сообщение об ошибке синтаксиса. Пришло время для отладчика!

В терминале запустите:

python -m pdb buggy.py

Вы войдёте в отладчик, и он будет выглядеть так:

> /path_to_file/buggy.py(1)<module>()
-> def add_one(number):

Используйте l(ist), чтобы увидеть больше кода, n(ext), чтобы перейти к следующей строке, или c(ontinue), чтобы продолжить выполнение скрипта. Когда вы дойдете до ошибки, pdb остановится и позволит вам её изучить.

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

Глубокое погружение

В Тёмные Века программирования (т.е. до того, как интегрированные среды разработки, или IDE, стали повсеместны), отладчики часто были самостоятельными инструментами, которые вы использовали вне вашего текстового редактора. Они приходили на помощь, позволяя программистам инспектировать состояние их программного обеспечения в различных точках выполнения.

На 2023 год, pdb Python – это не единственный вариант. Люди могут использовать IDE, такие как PyCharm или Visual Studio Code, которые имеют свои собственные изящные отладчики. Эти средства добавляют удобные функции, такие как точки останова, которые вы можете установить одним кликом, вместо ввода загадочных команд.

Затем есть ipdb, пакет, который можно установить через pip и который приносит преимущества IPython в отладку. Это как pdb на стероидах, с автодополнением и подсветкой синтаксиса.

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

Смотрите также

Для полной информации об отладчике Python ознакомьтесь с:

Если вас интересуют альтернативы, эти ссылки будут вам полезны:

Счастливой охоты на ошибки!