У меня есть утечка памяти в моем коде. Куча продолжает увеличиваться с помощью триггера потока. В моем коде у меня есть цикл while (1), который в основном ждет очереди. , когда этот поток запускается из webservice, входящий msg помещается в очередь, и вызывается метод в C++, который принимает сообщение и реализует поток, который находится в форме графика.Как и когда valgrind обнаруживает утечки памяти
Для каждого триггера я нахожу 604kb памяти, увеличивающейся в куче. Мне нужно это решить.
Я остановил службу [бинарный запуск в prod].
Я начал службу с VALGRIND [дал двоичный файл в качестве входных данных Valgrind]
valgrind --log-file=/home/valgrind-output.txt --leak-check=full <service binary>
Но в то время как двоичный работает он не показывает каких-либо утечек, только тогда, когда я остановить службу я вижу некоторые утечки. Но это однократные утечки и будут очищены после перезапуска службы. [Binary].
Я намеренно добавил выделение в начале процесса при каждом запуске каждого потока.
int *p = new int[10];
и добавил журнал also.I просмотра журнала печати каждый раз, когда я инициирующая flow.But я вижу Valgrind выигрыш дает каких-либо утечек в выходном файле.
Как я могу проверить утечки между каждым поточным вызовом? Действительно ли valgrind ботинок протекает только после того, как назван конец основного? Как проверить динамически то, что вызывает мой код в этом случае. Если есть какой-либо другой детектор, который мне нужно установить? Пожалуйста, предложите. Это было бы очень полезно. Спасибо.
> Valgrind --log-файл =/дом/Valgrind-output.txt --leak проверка = полный --show достижимым = да -massif servicebinary Valgrind: Плохой вариант: -massif Valgrind: Использование - -help для получения дополнительной информации или обратитесь к руководству пользователя. – user862833
--tool = massif также после создания файла журнала используйте ms_print massif.log> massifout.txt; –
нет это не работает – user862833