Например, декоратор:
def debug(func): def inner(*args, **kwargs): try: for res in func(*args, **kwargs): yield res except Exception, ex: import pdb pdb.post_mortem() return inner
Откроет сессию непосредственно в месте, где возникло исключение, например, если обёрнутая в декоратор функция вызвала другую, а та другую и где-то там возникло исключение, то pdb сессия откроется где-то там, в глубине, а мне нужна сесссия непосредственно в той функции, которую я обернул декоратором. Простой pdb.set_trace() тоже не канает, т.к. сессия откроется внутри декоратора.