python - 调试 Cython 时打印变量时出错

标签 python gdb cython pdb gdb-python

我正在尝试使用 gdb 调试一些 Cython 代码,这些代码包装了要从 Python 调用的 C++ 代码。我按照 documentation 中的说明进行操作但是我在调​​试时遇到了一些与我的代码无关的错误。示例:

(gdb) cy print some_variable
Python Exception <type 'exceptions.AttributeError'> 'PyDictObjectPtr' object has no attribute 'items':
Error occurred in Python: 'PyDictObjectPtr' object has no attribute 'items'

我有时也会收到这个(通常在第一个之后):

Python Exception <class 'gdb.error'> There is no member named ob_sval.:
Error occurred in Python command: There is no member named ob_sval.

为了调试代码,我使用 Docker 创建了一个环境:

FROM debian

RUN apt-get update && apt-get upgrade -y && apt-get install -y \
  build-essential gdb-python2 python-dbg python-dev \
  python-pip python-numpy-dbg

RUN pip install cython pygments

CMD bash

我找到了两个 related posts在 cython-users google 组中,但没有答案。

最佳答案

终于在 Cython 中打开了一个问题(感谢@hygorxaraujo!),它被确定为一个缺陷:

https://github.com/cython/cython/issues/2699

欢迎提出请求!

关于python - 调试 Cython 时打印变量时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52655757/

相关文章:

python - Cython sum v/s 平均内存跳跃

python - 安装 Python 库后自动创建奇怪的文件

python - 如何将有关被调用脚本关闭时保持打开状态的浏览器窗口的 python 数据传递回调用脚本

python - 当窗口调整大小时调整 Tkinter 小部件和 Canvas 的大小?

c++ - 在没有调试符号的情况下,如何确定外部库抛出的异常是什么?

linux - ddd 中的绿色执行箭头不可见

c++ - 无法执行 Cython 包装的 Python 代码

python - 在 Python 中,如何将列表中的所有元素添加到集合中?

python - 不需要的空白导致列扭曲

assembly - 我如何知道汇编指令被命中的次数