Я запускаю valgrind memcheck в программе, которая порождает тысячи других потоков.
Другие потоки не генерируют ошибок, и мне все равно, что с ними происходит.
Однако Valgrind настаивает на открытии именованного канала в / tmp каждый раз, когда появляется новый поток. Это не только расточительно, но и разрушает Вальгринд. Иногда valgrind не убирает после себя, и тогда будущие потомки с тем же pid (активным позже) не могут появиться, потому что valgrind не может создать канал с правильным именем (он уже существует).
Как я могу помешать Valgrind сделать все эти трубы!?!
РЕДАКТИРОВАТЬ:
Флаги я уже пробовал:
—ребенок-немого после вилки = да
и вещи, которые я уже исключил
—track-children = no (значение по умолчанию — нет).
Извините, что отвечаю на мой вопрос. Просто для целей документации.
Бег с флагом:
--vgdb=no
Это не задокументировано должным образом на страницах руководства, так как не говорит о том, что он будет извергать трубы везде без флага, но именно поэтому он это делает.
Если вы можете, настройте исходную программу так, чтобы вы могли отключить порождение потока с помощью аргумента командной строки. Запустите valgrind для результата с удаленным порождением потока.