Ipython ipdb, при вызове через ipdb.set_trace() не запоминает историю команд во время отладки - программирование
Подтвердить что ты не робот

Ipython ipdb, при вызове через ipdb.set_trace() не запоминает историю команд во время отладки

iPython запоминает историю команд, если я обычно запускаю ipython, например. чтобы обманывать тестирование основных вещей в repl, но я хотел бы иметь возможность вытаскивать команды отладки из предыдущего сеанса отладки, и я делаю свою отладку, просто запуская свою программу как обычно, где программа содержит

import ipdb
def info(type, value, info):
    import traceback
    traceback.print_exception(type, value, info)
    ipdb.pm()

import sys
sys.excepthook = info
trace = ipdb.set_trace

Что нужно настроить, чтобы я мог писать trace() в любом месте моей программы, чтобы начать отладку там, когда я запускаю программу, или для ее автоматического запуска отладки postmortem, когда она умирает сама по себе.

Python с iPython был прыжками и ограничениями за пределами других языков, когда дело доходило до быстрых итераций кода/теста, и я просто так близко к нирване в этот момент...

4b9b3361

Ответ 1

Вместо этого я использую pudb. Это позволяет получить реальную оболочку ipython от отладчика, а все команды там сохранены.