Я недавно выработал привычку запускать все свои программы через valgrind
для проверки утечек памяти, но большинство его результатов было немного загадочным для меня.
Для моего последнего пробега valgrind -v
дал мне:
All heap blocks were freed -- no leaks are possible
Это означает, что моя программа покрыта для утечек памяти , верно?
Так что означает эта ошибка? Моя программа неправильно читает определенные блоки памяти?
ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 14 from 9)
1 errors in context 1 of 1:
Invalid read of size 4
at 0x804885B: findPos (in /home/a.out)
by 0xADD918: start_thread (pthread_create.c:301)
by 0xA26CCD: clone (clone.S:133)
Address 0x4a27108 is 0 bytes after a block of size 40 alloc'd
at 0x4005BDC: malloc (vg_replace_malloc.c:195)
by 0x804892F: readInput (in /home/a.out)
by 0xADD918: start_thread (pthread_create.c:301)
by 0xA26CCD: clone (clone.S:133)
used_suppression: 14 dl-hack3-cond-1
Кроме того, каковы здесь так называемые "скрытые" ошибки?