Valgrind

Автор mihail_1, 13 октября 2012, 21:14:18

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

mihail_1

Цитировать
--13988:0:aspacem  Valgrind: FATAL: VG_N_SEGMENTS is too low.
--13988:0:aspacem    Increase it and rebuild.  Exiting now.
Чего именно ему не хватило и что (в отлаживаемой программе) к этому может привести?

Alexey_F

#1
Это "как бы" баг.

Возникает, судя по всему, тогда, когда в отлаживаемая программа использует "слишком" много памяти.

Решение, кстати, приведено и по ссылке, и в самом сообщении:
Цитата: mihail_1
VG_N_SEGMENTS is too low.
Increase it and rebuild.
Т.е. надо пересобрать Valgrind с увеличенной переменной VG_N_SEGMENTS. Ну или поставить другую версию, в которой это уже сделано. (как советуют по ссылке)

Кстати, а какая версия установлена? А то:
Цитировать$ aptitude show valgrind
Пакет: valgrind                                 
Состояние: не установлен
Версия: 1:3.6.0~svn11254+nmu1
...
ЦитироватьDate: Mon, 09 Aug 2010 14:35:45 +0000
Source: valgrind
Binary: valgrind
Architecture: source amd64
Version: 1:3.6.0~svn11254
...
Changes:
valgrind (1:3.6.0~svn11254) unstable; urgency=low
...
   * debian/patches/01_more-vg-n-segments.dpatch
     - Increased VG_N_SEGMENTS to 25000 (Closes: #491195)
...

mihail_1

Цитировать
Пакет: valgrind
Состояние: установлен
Автоматически установлен: нет
Версия: 1:3.3.1-3
Не собирал, поставил готовый apt-get install valgrind.
(у меня lenny, наверно поэтому старую версию и получил)

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

mihail_1

Приложение действительно почемуто ест память пока она вся не закончится.
В нем делается много malloc, но используется память не долго и после этого вызывается free. Но похоже что при этом освобождается не все захваченная память.
Хотя количество захватов и освобождений памяти совпадает.
Почему освобожденная память продолжает считаться занятой?

mihail_1

Еще одно непонятое мной сообщение
ЦитироватьWarning: set address range perms: large range 111651904 (undefined)