Python pdb显示所有局部变量都设置为“无”的堆栈帧

Python pdb显示所有局部变量都设置为“无”的堆栈帧,python,debugging,stack,pdb,Python,Debugging,Stack,Pdb,我正在调试C库的一些导入错误,或者使用py.test--pdb运行测试套件,或者在ipython中调用错误的导入,并在出现错误时删除pdb实例。到目前为止没有什么不寻常的。让我困惑的是,似乎有一些堆栈帧,所有局部变量都设置为无: (Pdb) dir() ['LLVMContextRef', 'LLVMExecutionEngineRef', 'LLVMFunctionsIterator', 'LLVMGlobalsIterator', 'LLVMMemoryBufferRef', 'LLVMMo

我正在调试C库的一些导入错误,或者使用
py.test--pdb运行测试套件,或者在ipython中调用错误的导入,并在出现错误时删除pdb实例。到目前为止没有什么不寻常的。让我困惑的是,似乎有一些堆栈帧,所有局部变量都设置为

(Pdb) dir() ['LLVMContextRef', 'LLVMExecutionEngineRef', 'LLVMFunctionsIterator', 'LLVMGlobalsIterator', 'LLVMMemoryBufferRef', 'LLVMModuleRef', 'LLVMObjectCacheRef', 'LLVMPassManagerBuilderRef', 'LLVMPassManagerRef', 'LLVMTargetDataRef', 'LLVMTargetLibraryInfoRef', 'LLVMTargetMachineRef', 'LLVMTargetRef', 'LLVMTypeRef', 'LLVMValueRef', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_decode_string', '_is_shutting_down', '_lib_dir', '_lib_name', '_make_opaque_ref', 'ctypes', 'get_library_name', 'os', 'x'] (Pdb) [locals()[x] for x in dir() if x != '__builtins__'] [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, 'x'] (Pdb) down > /usr/lib/python2.7/ctypes/__init__.py(365)__init__() -> self._handle = _dlopen(self._name, mode) (Pdb) dir() ['_FuncPtr', 'flags', 'handle', 'mode', 'name', 'self', 'use_errno', 'use_last_error'] (Pdb) name 'libllvmlite.so' (Pdb) (Pdb)dir() ['LLVMContextRef','LLVMExecutionEngineerRef','LLVMFunctionSiteerator','LLVMGlobal迭代器','LLVMMemoryBufferRef','LLVMModuleRef','LLVMObjectCacheRef','LLVMPassManagerBuilderRef','LLVMTargetDataRef','LLVMTargetLibraryInfoRef','LLVMTargetMachinerRef','LLVMTargetRef','LLVMTypeRef','LLVMValueRef','UUUU内置文件'__“,”文件“,”名称“,”包“,”解码字符串“,”正在关闭“,”库目录“,”库名称“,”使库不透明“,”引用“,”ctypes“,”获取库名称“,”操作系统“,”x“] (Pdb)[locals()[x]用于dir()中的x,如果x!='' [无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,'x'] (Pdb)向下 >/usr/lib/python2.7/ctypes/_init__uuuu.py(365)_init_uuu() ->self.\u handle=\u dlopen(self.\u名称,模式) (Pdb)dir() [“函数”、“标志”、“句柄”、“模式”、“名称”、“自身”、“使用错误号”、“使用上次错误”] (Pdb)名称 'libllvmlite.so' (Pdb) 如前所示,这不会影响所有帧。在损坏的帧中,
\uuuuuuuuuuuuuuuuu
似乎是唯一保持不变的东西。由于变量正确地传递到了下一帧,并且在那里可见,我认为这不是代码本身的问题,而是pdb的问题。有什么想法会导致这种情况,或者如何深入研究它