2012-11-21 1 views
2

При использовании Valgrind я заметил, что он только генерирует сводку кучи, когда процесс завершается. Есть ли способ заставить Valgrind сканировать память и распечатывать отчеты об утечках, когда процесс еще запущен?Valgrind: Как заставить его генерировать сводку кучи без завершения процесса?

ответ

7

В дополнение к запросу клиента VALGRIND_DO_LEAK_CHECK, вы можете также запустить Valgrind с --vgdb=yes, чтобы включить встроенный gdbserver, а затем выдавать monitor leak_check full reachable anycommand на (gdb) строке.

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

3

Используйте запрос клиента VALGRIND_DO_LEAK_CHECK от valgrind/memcheck.h.