Search results
Results from the WOW.Com Content Network
Valgrind (/ ˈ v æ l ɡ r ɪ n d /) [6] is a programming tool for memory debugging, memory leak detection, and profiling. Valgrind was originally designed to be a freely licensed memory debugging tool for Linux on x86 , but has since evolved to become a generic framework for creating dynamic analysis tools such as checkers and profilers.
The ability to detect non-fatal errors is a major distinction between PurifyPlus and similar programs from the usual debuggers.By contrast, debuggers generally only allow the programmer to quickly find the sources of fatal errors, such as a program crash due to dereferencing a null pointer, but do not help to detect the non-fatal memory errors.
A memory debugger is a debugger for finding software memory problems such as memory leaks and buffer overflows. These are due to bugs related to the allocation and deallocation of dynamic memory . Programs written in languages that have garbage collection , such as managed code , might also need memory debuggers, e.g. for memory leaks due to ...
64-bit and 32-bit applications, C, C++, .NET, and dlls generated by any language compiler. Performance and memory profiler that identifies time-intensive functions and detects memory leaks and errors. Proprietary gprof: Linux/Unix Any language supported by gcc: Several tools with combined sampling and call-graph profiling.
For C and C++, many tools exist that perform a compile-time transformation of the code to do memory safety checks at runtime, such as CheckPointer [21] and AddressSanitizer which imposes an average slowdown factor of 2. [22]
Memcheck, like all Valgrind tools, uses binary translation and instrumentation to run code manipulating the shadow memory corresponding to program memory use. AddressSanitizer on the other hand is created on compile-time and inserts error-checking code inline into a program during compilation.
A code sanitizer is a programming tool that detects bugs in the form of undefined or suspicious behavior by a compiler inserting instrumentation code at runtime. The class of tools was first introduced by Google's AddressSanitizer (or ASan) of 2012, which uses directly mapped shadow memory to detect memory corruption such as buffer overflows or accesses to a dangling pointer (use-after-free).
A memory leak may also happen when an object is stored in memory but cannot be accessed by the running code (i.e. unreachable memory). [2] A memory leak has symptoms similar to a number of other problems and generally can only be diagnosed by a programmer with access to the program's source code.