我正在使用python2.5和scipy.weave嵌入c代码。
在我的c代码中,没有malloc()函数,但是我收到了像
这样的错误"glibc detected *** python: malloc(): memory corruption"
不时。(这是一个随机算法)
那我该怎么调试呢?
由于
答案 0 :(得分:7)
我猜测你的代码在某个地方溢出了一个数组(或导致Python这样做)。
如果您无法可靠地重现它,您将发现调试这很难,因此您可能希望显式播种随机数生成器并尝试查找可以重现损坏的种子。您可能还会发现使用像valgrind这样的工具有助于跟踪何时编写分配限制 - 当您每次都可以重现时,可能会更有效。