import pdb pdb.set_trace(*, header=None, commands=None)
header=None - заголовок, выводиться перед отладкой.commands=None - список команд, которые будут выполнены сразу после запуска отладчика (Добавлен в Python 3.14).Функция set_trace() модуля pdb вводит отладчик в кадр стека вызова.
Это полезно для жесткой установки точки останова в заданной точке программы, даже если код не отлаживается иначе, Например, когда утверждение не выполнено.
Если указан аргумент header, то непосредственно перед началом отладки на консоль выводится заголовок header.
Аргумент commands, если передан, представляет собой список команд, которые будут выполнены сразу после запуска отладчика.
Смотрите встроенную функцию breakpoint().
Изменено в Python 3.13:
pdb.set_trace()войдет в отладчик сразу, а не на следующей строке кода, которая будет выполнена.
Изменено в Python 3.14 Точки останова (
breakpoint(),pdb.set_trace()) теперь повторно используют последний экземплярPdb. Это позволяет сохранять настройки между остановками:display,commandsи т.д.
Добавлено в Python 3.14: Поддержка аргумента
commands.
# test.py import pdb class MyClass(): def __init__(self, loops): self.count = loops def start(self): for i in range(self.count): pdb.set_trace(header="def start -> print") print(i) return if __name__ == '__main__': MyClass(5).start()
Результат запуска:
$ python3 test.py def start -> print > /home/docs-python/test.py(10)start() -> print(i) (Pdb) c 0 def start -> print > /home/docs-python/test.py(9)start() -> pdb.set_trace(header="def start -> print") (Pdb)