проблемы с памятью - PullRequest
       34

проблемы с памятью

0 голосов
/ 13 ноября 2011

У меня очень длинный код с несколькими процессами, и где-то в программе, когда она работает, я получаю сообщение типа «неверный следующий размер (быстрый)» и некоторые числа, которые не имеют смысла.

Я не могу заставить GDB запускаться только в этом процессе, и я не могу понять, где в программе это происходит. Я положил printf s влево и вправо (я также сбрасываю его с fflush, чтобы он распечатывался точно в это время), но все же не могу найти точную линию, когда это происходит!

Как решить проблему, подобную этой? Буду признателен за помощь, потому что я перепробовал все, что мог придумать.

Ответы [ 2 ]

0 голосов
/ 13 ноября 2011

Кажется, что у многих возникает эта проблема, когда они используют функцию sizeof () для выделения неправильного объема памяти для чего-либо.

Проверьте эти потоки:

http://www.gtkforums.com/viewtopic.php?t=4819

http://www.linuxquestions.org/questions/programming-9/free-invalid-next-size-fast-c-error-729852/

0 голосов
/ 13 ноября 2011

Сначала попробуйте найти строку с

grep -rni "invalid next" *.c

при условии, что это все файлы c в некоторых подкаталогах. Затем вы должны увидеть, что означают эти цифры (или исправить сообщение об ошибке, чтобы оно было более значимым). Если у вас нет gnu-grep:

find -name '*.c' | xargs grep -ni "invalid next"
...