Как устранить сегфайты, которые возникают в рабочем коде только при отладке с помощью ipdb?

Я использую:

  • Python: 3.11.0
  • Django: 4.2.8
  • djangorestframework 3.14.0
  • sqlite: 3.38.5

Когда я отлаживаю и использую 'n' для перехода к методу, я иногда получаю segfault там, где нет проблем с нормальным выполнением кода. Я могу переместить 'ipdb.set_trace()' сразу после вызова, вызвавшего segfault, повторно запустить тест и продолжить отладку, но это утомительно.

Одна из причин, которую я отследил, кроется в функции django reverse. Здесь <URLResolver <module 'rest_framework.urls' from '/home/paul/wk/cliosoft/sosmgrweb/venv/lib/python3.11/site-packages/rest_framework/urls.py'> (rest_framework:rest_framework) 'api-auth/'> вызывает сегфолт, когда вызывается его метод _populate.

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

Кто-нибудь знает, в чем причина и как ее устранить?

Python 3.11.0 вызывал эту проблему. Обновление venv до использования python 3.11.8 избавило меня от этой проблемы, и теперь я могу использовать ipdb без сбоев (пока что это проверено).

Вернуться на верх