在Ubuntu上导入TVM后导入readline segfaults

时间:2019-07-13 00:46:19

标签: python ubuntu readline pdb tvm

我正在使用深度学习编译器TVM。在我的工作流程中,能够使用import pdb; pdb.set_trace()并放入调试器非常有用。但是,pdb.set_trace()会在导入TVM之后的任何时间引起段错误。

我当前的设置是 -Ubuntu 16.04(在适用于Linux的Windows子系统上运行,但这也发生在本机16.04机器上!) -Python 3.6

在Windows或Mac上不会发生此问题。

仅当从命令行(即python3 minimum-reproducible-example.py)运行脚本时才会发生此问题,而从python3副本运行时则不会出现。

我已经使用gdb进行了一些调试,并缩小了范围:导入readline程序包时发生错误。

最小的可复制示例:

import tvm
import readline

使用gdb调试后,我将其跟踪到cpython中的特定行:

Program received signal SIGSEGV, Segmentation fault.   
PyModule_GetState (m=0x0) at Objects/moduleobject.c:558
558         if (!PyModule_Check(m)) {                  

在这种情况下,m0x0,该函数似乎并不期望。

如果有人甚至可以向我指出更有用的方法来调试它,那将很有帮助!

0 个答案:

没有答案