Valgrind не печатает встроенные сообщения об ошибках, а просто сводит кучи и утечки - PullRequest
0 голосов
/ 21 января 2012

Я использую команду:

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 или другие проблемы.

...