Как использовать ipdb.set_trace в раздвоенном процессе

Я использую ipdb.set_trace(), когда мне нужно установить точку останова в моем коде. Прямо сейчас я пытаюсь использовать его в процессе, который я создал с помощью multiprocessing, в то время как код действительно останавливается, я не могу вводить что-либо, чтобы продолжить отладку. Есть ли способ правильно настроить мой stdin?

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

Ответы

Ответ 2

Иногда для отладки Вы можете изменить свой код, чтобы использовать multiprocessing.dummy. Таким образом, никакая вилка не будет выполнена, она будет работать с потоками и будет легче отлаживать.

Позже (после того, как ошибка раздавлена ​​...) вы можете вернуться к многопроцессорной обработке

multiprocessing.dummy - должен предлагать тот же API, что и многопроцессорность, поэтому его легко изменить...