Valgrind — это инструмент, позволяющий находить в программах недостатки, такие как ошибки при работе с памятью, неправильное разделение потоков, неинициализированные переменные и прочее. В новой версии:
- Поддержка свежих дистрибутивов Linux (gcc-4.7, glibc-2.16).
- Поддержка платформы MIPS32/Linux, в обоих форматах: BE и LE.
- Начальная поддержка x86/Android.
- Начальная поддержка MacOSX 10.8.
- Поддержка инструкций Intel AVX и AES.
- Поддержка инструкций для десятичных чисел с плавающей запятой для архитектуры POWER.
- Добавлена поддержка реализаций malloc(), находящихся не в libc.so. Это даёт возможность использовать альтернативные реализации malloc() такие как TCMalloc и JEMalloc при запуске в Memcheck, Massif, DRD, Helgrind.
- Для инструментов, подменяющих вызовы функции malloc() и ей подобных, добавлена опция --redzone-size=<кол-во байт>, которая позволяет задать размер специальных запретных зон вокруг выделяемых блоков памяти. Чем больше размер этих зон, тем больше шанс поймать выход за границы выделенной памяти.
- Для инструментов, работающих с потоками, добавлен новый планировщик потоков, основанный на алгоритме round-robin. Этот планировщик является более честным и обеспечивает лучшую отзывчивость интерактивных многопоточных программ, а также даёт лучшую воспроизводимость результатов в Helgrind и DRD.
- Улучшение производительности при наличии большого количества правил для подавления ошибок.
- Улучшена поддержка формата Dwarf (поддержка DWARF4 и алгоритма сжатия отладочной информации DWZ).
- В Memcheck сокращено потребление памяти для программ, выделяющих большое количество блоков памяти.
- В Memcheck увеличена производительность обнаружения утечек памяти.
- Во встроенный GDB-сервер добавлено несколько полезных команд для работы с Memcheck.
- В Memcheck под MacOSX 10.6, 10.7 уменьшено количество ложных срабатываний, которые вызваны особенностями кода, генерируемого LLVM/Clang.
- Множество других улучшений и исправлений ошибок.
>>> Подробности