Сообщить об ошибке.

Функции set_default_backend() и get_default_backend() модуля pdb в Python

Установка движка отладки по умолчанию

Синтаксис:

import pdb

# Добавлено в Python 3.14
pdb.set_default_backend(backend)

# Добавлено в Python 3.14
pdb.get_default_backend()

Параметры:

  • backend - строка с указанием движка:
    • 'settrace' - классический движок на основе sys.settrace()
    • 'monitoring' - современный движок на основе monitoring API

Описание set_default_backend() и get_default_backend()

Добавлено в Python 3.14

Функция pdb.set_default_backend() модуля pdb устанавливает движок отладки по умолчанию для всех новых экземпляров pdb.Pdb, когда явно не указан параметр backend.

Функция pdb.get_default_backend() возвращает бэкенд по умолчанию для pdb.

Ключевые особенности:

  1. Не влияет на:
  2. Сохраняет обратную совместимость:
    • По умолчанию используется 'settrace'
    • Можно явно переключить на новый движок

Сравнение движков:

ДвижокОсноваПреимуществаОграничения
'settrace'sys.settrace()Полная совместимостьМедленнее
'monitoring'Monitoring APIВысокая производительностьТолько Python 3.14+

Рекомендации:

  1. Для новых проектов используйте 'monitoring':

    pdb.set_default_backend('monitoring')
    
  2. Для отладки в production предпочтительнее 'settrace':

    pdb.set_default_backend('settrace')  # Стабильность важнее скорости
    
  3. Для временного переключения:

    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)