import pdb # Добавлено в Python 3.14 pdb.set_default_backend(backend) # Добавлено в Python 3.14 pdb.get_default_backend()
backend - строка с указанием движка:'settrace' - классический движок на основе sys.settrace()'monitoring' - современный движок на основе monitoring APIset_default_backend() и get_default_backend()Добавлено в Python 3.14
Функция pdb.set_default_backend() модуля pdb устанавливает движок отладки по умолчанию для всех новых экземпляров pdb.Pdb, когда явно не указан параметр backend.
Функция pdb.get_default_backend() возвращает бэкенд по умолчанию для pdb.
Ключевые особенности:
breakpoint()Pdb.set_trace() (всегда используют 'monitoring')'settrace'| Движок | Основа | Преимущества | Ограничения |
'settrace' | sys.settrace() | Полная совместимость | Медленнее |
'monitoring' | Monitoring API | Высокая производительность | Только Python 3.14+ |
Для новых проектов используйте 'monitoring':
pdb.set_default_backend('monitoring')
Для отладки в production предпочтительнее 'settrace':
pdb.set_default_backend('settrace') # Стабильность важнее скорости
Для временного переключения:
from contextlib import contextmanager @contextmanager def temp_backend(backend): original = pdb.get_default_backend() # Гипотетическая функция pdb.set_default_backend(backend) try: yield finally: pdb.set_default_backend(original)
Важно:
Изменения влияют только на новые экземпляры Pdb, созданные после вызова функции. Существующие экземпляры продолжают использовать свой текущий движок.
pdb.set_default_backendБазовый пример:
import pdb # Установка monitoring-движка по умолчанию pdb.set_default_backend('monitoring') # Все новые экземпляры Pdb будут использовать monitoring debugger = pdb.Pdb() # backend='monitoring'
Временное переключение движка
from pdb import Pdb, set_default_backend # Сохраняем текущий движок original_backend = 'settrace' # Значение по умолчанию # Включаем monitoring для сложной отладки set_default_backend('monitoring') try: complex_debugger = Pdb() # Использует monitoring # ... сложная отладка ... finally: # Возвращаем стандартный движок set_default_backend(original_backend)