Valgrind finds memory-management problems by checking all reads and writes of memory are checked, and intercepting all calls to malloc/new/free/delete. As a result, Valgrind can detect problems like the use of uninitialised memory, reading/writing memory after it has been free'd, reading/writing off the end of malloc'd blocks, reading/writing inappropriate areas on the stack, memory leaks, and passing of uninitialised and/or unaddressible memory to system calls. Valgrind tracks each byte of memory with nine status bits: one tracks addressibility, and the other eight validity. As a result, it can detect the use of single uninitialised bits, and does not report spurious errors on bitfield operations. Valgrind debugs almost any dynamically-linked ELF x86 executable without modification or recompilation.
3 July 2002
Leaders and contributors
Resources and communication
|Developer||Mailing List Info/Archive||http://lists.sourceforge.net/mailman/listinfo/valgrind-developers|
|Support||Mailing List Info/Archive||http://lists.sourceforge.net/mailman/listinfo/valgrind-users|
|Help||Mailing List Info/Archive||http://lists.sourceforge.net/mailman/listinfo/valgrind-announce|
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the page “GNU Free Documentation License”.
The copyright and license notices on this page only apply to the text on this page. Any software or copyright-licenses or other similar notices described in this text has its own copyright notice and license, which can usually be found in the distribution or license text itself.