🖥 Как производится отладка программы на Python



Python есть встроенный отладчик под названием pdb. Это простая консольная утилита, которая обладает основной функциональностью для отладки кода. Но если вы ищете что-то более продвинутое, то стоит обратить внимание на ipdb – отладчик с функциональностью из IPython.



Проще всего вызвать отладчик pdb из кода, где вы работаете:



import pdb; pdb.set_trace()



Как только интерпретатор доберётся до этой строчки, запустится отладчик и в консоли будут доступны новые команды.



list()

Эта команда покажет часть кода, на выполнении которой сейчас находится интерпретатор. Можно передать два аргумента first и last для просмотра определённого участка кода. Если указать только first, то будет выведен код вокруг искомой строки.



up(p) и down(d)

Эти команды используются для передвижения по стеку вызовов. С их помощью можно отследить, откуда была вызвана текущая функция.



step() и next()

Другая пара не менее важных команд. С их помощью можно выполнять код построчно. Единственное различие между ними в том, что next() перейдёт к следующей строке вне зависимости от вызываемых функций, а step() перейдёт в вызванную функцию, если это возможно.



break()

Эта команда позволяет создавать брейкпоинты без внесений изменений в код. Ниже разберём этот этап более детально.



Краткий список команд отладчика pdb:



args() — выводит аргументы функции;

continue() или (cont) — продолжит выполнение до первого брейкпоинта или до завершения программы;

help() — выводит список доступных команд или подсказки по определённой команде;

jump() — перепрыгивает к выполнению указанной строчки кода;

list() — выводит исходный код программы вокруг выбранной строки;

expression() — выводит значение выражения;

pp — выводит значение в «красивом» виде;

quit или exit() — отменяет выполнение программы;

return() — завершает выполнение текущей функции.



@python_job_interview