Utility program, or utility, is a type of computer programs that support using the computer, an application or a development environment.
Utility programs include file management, searching for files, comparing file contents as well as performing diagnostic routines to check performance and current health of the hardware.
Utilities that support a development environment can perform a myriad of tasks.
Valgrind is a free programming tool for memory debugging, memory leak detection, and profiling.
Valgrind was originally designed to be a free version of Purify for Linux on x86, but has since evolved to become a generic framework for creating dynamic analysis tools such as checkers and profilers.
It is widely used by Linux programmers.