Как отладить "glibc обнаружил *** python: malloc (): повреждение памяти" - PullRequest
4 голосов
/ 03 сентября 2010

Я использую python2.5 с scipy.weave для встраивания кода c.

В моем коде c нет функции malloc (), но я получил ошибку вроде

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

время от времени. (Это случайный алгоритм)

Так как мне отладить это?

Спасибо

1 Ответ

7 голосов
/ 03 сентября 2010

Я бы рискнул предположить, что ваш код где-то переполняет массив (или заставляет Python сделать это).

Вы обнаружите, что отладка этого будет сложной, если вы не можете надежно воспроизвести ее, поэтому вам может понадобиться явно заполнить генератор случайных чисел и попытаться найти начальное число, с помощью которого вы можете воспроизвести искажение. Вы также можете обнаружить, что использование такого инструмента, как valgrind , полезно для отслеживания того, когда вы записываете за пределы выделения - возможно, даже больше, когда вы можете воспроизводить его каждый раз.

...