Разница между kmemleak и Valgrind в обнаружении утечек памяти заключается в области применения и сферах работы инструментов.
Kmemleak предназначен для обнаружения утечек памяти в ядре системы. 13 Он работает по принципу, похожему на сборщик мусора, с той разницей, что обнаруженные объекты не освобождаются, а только сообщаются через специальный файл. 1 Kmemleak может быть полезен при общесистемном анализе (ядра и всех загруженных модулей сразу). 4
Valgrind используется для обнаружения утечек памяти в приложениях, работающих в пространстве пользователя. 13 Инструмент может выявлять, например, использование неинициализированной памяти, использование освобождённой памяти и выход за пределы границ памяти. 5 Valgrind не работает в пространстве ядра. 3
Таким образом, kmemleak ориентирован на обнаружение утечек памяти в ядре, а Valgrind — в приложениях.