Как исправить проблему с распределителем пулов valgrind? - PullRequest
2 голосов
/ 27 августа 2010

Когда я запускаю Valgrind для своего кода, я получаю несколько тысяч экземпляров

12 bytes in 1 blocks are possibly lost in loss record 545 of 29,459
   at 0x7FCC050: operator new(unsigned int) (vg_replace_malloc.c:214)
   by 0x87E39B1: __gnu_cxx::new_allocator<T>::allocate(unsigned int, void const*) (new_allocator.h:89)
   ...
   ...

Из различных сообщений я смог определить, что это «не ошибка, а особенность», поскольку этоспособ, которым библиотеки gnu обеспечивают высокоэффективное выделение stl.Тем не менее, просмотр нескольких тысяч из них затрудняет поиск истинных ошибок.

Как настроить Valgrind так, чтобы эти ошибки не отображались?

Примечание. Я попытался установить переменные среды GLIBCXX_FORCE_NEW G_SLICE=always-malloc G_DEBUG=gc-friendly,resident-modules и ничего не изменилось

Ответы [ 2 ]

1 голос
/ 27 августа 2010

Используйте valgrind --gen-suppressions=yes, чтобы сгенерировать операторы подавления для отображаемых ошибок. Затем вы можете повторно запустить valgrind с этими сообщениями об ошибках, подавленными с помощью --suppressions=<filename>.

0 голосов
/ 07 сентября 2010

Вы пробовали предложения в FAQ по Valgrind для отключения пула выделения?Обратите внимание, что переменная окружения изменяется в зависимости от используемой версии gcc.

...