如何消除在使用ipdb调试时出现的代码中的段错误?

0 投票
1 回答
25 浏览
提问于 2025-04-14 16:46

我正在使用:

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

在调试的时候,我用'n'来逐步执行一个方法,有时候会出现段错误(segfault),而正常运行代码时却没有问题。我可以把我的'ipdb.set_trace()'放到导致段错误的调用之后,再重新运行测试继续调试,但这样做很麻烦。

我发现一个可能的原因是在django的反向函数中。在这里,<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方法时会导致段错误。

可以开始升级所有的东西,但这个应用程序很大,有很多依赖项,我希望能确认如果我这样做,这个问题会被解决。

有没有人知道这是什么原因,以及我该如何解决这个问题?

1 个回答

0

Python 3.11.0 版本导致了这个问题。把虚拟环境升级到使用 Python 3.11.8 后,这个问题就解决了,现在我可以正常使用 ipdb,而不会出现崩溃的情况(到目前为止测试是这样)。

撰写回答