Как отладить обнаруженную glibc *** python: malloc (): повреждение памяти

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

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

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

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

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

Спасибо


person Eminemya    schedule 03.09.2010    source источник
comment
Связано: stackoverflow.com/questions/2663841/   -  person Mark    schedule 03.09.2010


Ответы (1)


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

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

person Andrew Aylett    schedule 03.09.2010