如何使用 cygdb 调试 cython?

PDi*_*lta 11 python debugging gdb cython ddd-debugger

如果按照Cython 调试文档中指定的那样使用 python2.7 配置它,则在从源代码构建 gdb 后,可以使用 gdb 调试 Python3/Cython 项目。

但是,文档中的示例:

  1. 有时是模糊的(例如,代码应该使用 python3 构建,调试器使用 python2 运行,但我发现python-gdb实际上链接到python2......那么它是如何工作的?)
  2. 不完整(代码块中涵盖了一些步骤,文本中模糊地提到了其他步骤)
  3. 不一致(例如同时引用source.pyxmyfile.pyx

此外,它:

  1. 没有考虑虚拟环境的使用
  2. 似乎假设该main函数驻留在 .pyx 中(但我的函数驻留在常规main.py
  3. 不指定当您的文件位于不同目录中时要执行的操作(例如像 mymain.pycythonCode.pyxdo )

有人可以解释一下(最好有工作示例)如何在涉及刚才提到的所有 3 点的情况下调试 Python3/Cython 项目吗?

目前看来我实际上可以按照这篇Cython wiki 文章让 DDD 工作,但后来我发现这是“旧”的做法,它指的是我也链接到的当前调试文档。然而,目前我还不清楚“新”方法如何发挥作用(旧方法对我来说更有意义),而且让它发挥作用似乎更复杂。