Valgrind 'шум', что это означает?

Когда я использовал valgrind, чтобы помочь отладить приложение, я продолжал работать, я замечаю огромное о шума, который, кажется, жалуется на стандартные библиотеки. Как тест я сделал это;

echo 'int main() {return 0;}' | gcc -x c -o test -

Затем я сделал это;

valgrind ./test

==1096== Use of uninitialised value of size 8
==1096==    at 0x400A202: _dl_new_object (in /lib64/ld-2.10.1.so)
==1096==    by 0x400607F: _dl_map_object_from_fd (in /lib64/ld-2.10.1.so)
==1096==    by 0x4007A2C: _dl_map_object (in /lib64/ld-2.10.1.so)
==1096==    by 0x400199A: map_doit (in /lib64/ld-2.10.1.so)
==1096==    by 0x400D495: _dl_catch_error (in /lib64/ld-2.10.1.so)
==1096==    by 0x400189E: do_preload (in /lib64/ld-2.10.1.so)
==1096==    by 0x4003CCD: dl_main (in /lib64/ld-2.10.1.so)
==1096==    by 0x401404B: _dl_sysdep_start (in /lib64/ld-2.10.1.so)
==1096==    by 0x4001471: _dl_start (in /lib64/ld-2.10.1.so)
==1096==    by 0x4000BA7: (within /lib64/ld-2.10.1.so)
* large block of similar snipped *
==1096== Use of uninitialised value of size 8
==1096==    at 0x4F35FDD: (within /lib64/libc-2.10.1.so)
==1096==    by 0x4F35B11: (within /lib64/libc-2.10.1.so)
==1096==    by 0x4A1E61C: _vgnU_freeres (vg_preloaded.c:60)
==1096==    by 0x4E5F2E4: __run_exit_handlers (in /lib64/libc-2.10.1.so)
==1096==    by 0x4E5F354: exit (in /lib64/libc-2.10.1.so)
==1096==    by 0x4E48A2C: (below main) (in /lib64/libc-2.10.1.so)
==1096==
==1096== ERROR SUMMARY: 3819 errors from 298 contexts (suppressed: 876 from 4)
==1096== malloc/free: in use at exit: 0 bytes in 0 blocks.
==1096== malloc/free: 0 allocs, 0 frees, 0 bytes allocated.
==1096== For counts of detected errors, rerun with: -v
==1096== Use --track-origins=yes to see where uninitialised values come from
==1096== All heap blocks were freed -- no leaks are possible.

Вы видите полный результат здесь: http://pastebin.com/gcTN8xGp

У меня есть два вопроса; во-первых есть ли способ подавить весь шум?

- шоу-ниже-основного установлено на не по умолчанию, но там, кажется, не - эквивалентное шоу-после-основного.

11
задан Chris Huang-Leaver 19 May 2010 в 11:03
поделиться

3 ответа

Обновите до Valgrind 3.5.0 или выше. Среди прочего были обновлены файлы .supp по умолчанию.

5
ответ дан 3 December 2019 в 05:33
поделиться

Вы можете подавить вывод, добавив

{
   ld error suppression
   Memcheck:Cond
   fun:dl_main
   fun:_dl_sysdep_start
   fun:_dl_start
   obj:/lib64/ld-2.10.1.so
}

к /usr/lib/valgrind/default.supp (или определив свой собственный файл подавления).

Похоже, это известная ошибка компоновщика / загрузчика, по крайней мере, для разработчиков Debian и Arch Linux; Я не уверен насчет остальных, а также их запланированного курса действий.

12
ответ дан 3 December 2019 в 05:33
поделиться

У меня время от времени появляются эти симптомы, и решение всегда состоит в том, чтобы обновить мои пакеты valgrind и libc для синхронизации . Об остальном позаботятся милые маленькие эльфы в Debian.

4
ответ дан 3 December 2019 в 05:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: