调试Cython时打印变量时出错

hyg*_*ujo 9 python gdb cython gdb-python pdb

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

(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'
Run Code Online (Sandbox Code Playgroud)

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

Python Exception <class 'gdb.error'> There is no member named ob_sval.:
Error occurred in Python command: There is no member named ob_sval.
Run Code Online (Sandbox Code Playgroud)

为了调试代码我用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
Run Code Online (Sandbox Code Playgroud)

我在cython-users google group中发现了两个相关 帖子,但没有回答.

ast*_*nlu 2

最终在 Cython 中提出了一个问题(感谢 @hygorxaraujo!),并将其确定为缺陷:

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

欢迎拉请求!