Я использую команду:
valgrind --tool=memcheck --leak-check=yes ./prog
Когда это выполняется с помощью тестового сценария, я не получаю встроенных сообщений об ошибках или предупреждений, я просто получаю сводку кучи и сводку утечки.
Я пропускаю флаг или что-то еще?
==31420== HEAP SUMMARY:
==31420== in use at exit: 1,580 bytes in 10 blocks
==31420== total heap usage: 47 allocs, 37 frees, 7,132 bytes allocated
==31420==
==31420== 1,580 (1,440 direct, 140 indirect) bytes in 5 blocks are definitely lost in loss record 2 of 2
==31420== at 0x4C274A8: malloc (vg_replace_malloc.c:236)
==31420== by 0x400FD4: main (lab1.c:51)
==31420==
==31420== LEAK SUMMARY:
==31420== definitely lost: 1,440 bytes in 5 blocks
==31420== indirectly lost: 140 bytes in 5 blocks
==31420== possibly lost: 0 bytes in 0 blocks
==31420== still reachable: 0 bytes in 0 blocks
==31420== suppressed: 0 bytes in 0 blocks
==31420==
==31420== For counts of detected and suppressed errors, rerun with: -v
==31420== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 4 from 4)
В последний раз, когда я использовал valgrind (несколько дней назад), он выводил сообщения об ошибках по мере их возникновения, в дополнение к сводке кучи и утечке.
РЕДАКТИРОВАТЬ: я пытался проверить герметичность = полный, тот же результат
Строка, упомянутая в сводке кучи (lab1.c: 51):
temp_record = malloc(sizeof(struct server_record));
И я часто использую этот указатель в своем коде.Вот что раньше было так полезно в сообщениях об ошибках valgrind, они показывали мне, когда я потеряю указатель на этот malloc или другие проблемы.