我正在使用带有 scipy.weave 的 python2.5 来嵌入 c 代码。
在我的 c 代码中,没有 malloc() 函数,但我收到了类似的错误
"glibc detected *** python: malloc(): memory corruption"
不时。(这是一个随机算法)
那么我该如何调试呢?
谢谢
我冒昧地猜测您的代码在某处溢出了数组(或导致 Python 这样做)。
如果您不能可靠地重现它,您会发现调试它很困难,因此您可能希望明确地为您的随机数生成器提供种子,并尝试找到一个可以重现损坏的种子。您可能还会发现使用valgrind之类的工具有助于跟踪何时写入超出分配的限制——当您每次都可以重现它时可能更是如此。