2010-09-03 5 views
4

Я использую python2.5 с scipy.weave для вставки c-кода.Как отлаживать «обнаруженный glibc *** python: malloc(): повреждение памяти»

В моем коде на Си, нет функции таНос(), но я получил сообщение об ошибке, как

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

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

Так как же я его отладки вне?

Благодаря

+0

Связанный: http://stackoverflow.com/questions/2663841/python-tracing-a-segmentation-fault – Mark

ответ

7

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

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

+1

+1 для valgrind – bstpierre

Смежные вопросы