Правильно ли работает инструмент массива с многопоточными приложениями?

Я разрабатываю многопоточное приложение, которое, кажется, выделяет огромные объемы памяти во время работы. Вся память освобождается в конце выполнения, поэтому valgrind не обнаруживает утечек памяти. Я пытался использовать инструмент массива, чтобы выяснить, что происходит, но ms_print, похоже, показывает информацию только о главном потоке. Однако я считаю, что подавляющее большинство памяти выделяется в дочерних потоках. Можно ли заставить массив показывать информацию о них?

2 ответа

Для меня (Ubuntu 12.04) это работает по умолчанию. Как и в вашем приложении, мой основной поток ничего не делает (кроме обработки моего пользовательского интерфейса на основе gtk), и все (de) распределение выполняется в подпотоках.

У меня действительно были некоторые начальные трудности, потому что я анализировал проект на основе autotools, и в своих первых попытках я анализировал сценарий оболочки, сгенерированный libtool, а не моим приложением.

Вы можете установить --trace-children=yes [default:no]

Когда включено, Valgrind будет прослеживать подпроцессы, инициированные через системный вызов exec. Это необходимо для многопроцессорных программ.

ручной массив

Другие вопросы по тегам