4

Cコードを埋め込むために、scipy.weaveでpython2.5を使用しています。

私のCコードにはmalloc()関数はありませんが、次のようなエラーを受け取りました

"glibc detected *** python: malloc(): memory corruption"

時々(ランダムなアルゴリズムです)

では、どのようにデバッグすればよいでしょうか。

ありがとう

4

1 に答える 1

7

あなたのコードがどこかで配列をオーバーフローしている(またはPythonにオーバーフローさせている)と推測する危険があります。

確実に再現できない場合、これをデバッグするのは難しいことがわかるでしょう。そのため、乱数ジェネレーターを明示的にシードし、破損を再現できるシードを見つけようとする場合があります。また、 valgrindのようなツールを使用すると、割り当ての制限を超えて書き込みを行った場合に追跡するのに役立つことに気付くかもしれません。おそらく、毎回それを再現できる場合はなおさらです。

于 2010-09-03T13:57:52.590 に答える