Valgrind и санитайзеры: поиск ошибок памяти
Коротко: Инструменты, обнаруживающие во время работы программы ошибки обращения с памятью, например обращения за конец массивов или забытые освобождения.
Подробнее: В языках вроде C и C++ память управляется вручную. Типичные ошибки: обращение за конец массива (переполнение буфера), использование освобождённой памяти (use-after-free), двойное освобождение (double free), забытое освобождение (утечка памяти).
Подробности
Valgrind (Memcheck)
Valgrind запускает программу…
См. также: утечка памяти, стек и куча, фаззинг, отладчики и дампы памяти