Valgrind Instrumentation Framework
valgrind.org
2
Leaving SiteNav
External Link Disclaimer
You are about to visit valgrind.org. This website is not operated by us. We are not responsible for its content or privacy practices.
About this website
Valgrind is an instrumentation framework for building dynamic analysis tools for detecting memory management and threading bugs, and for performing detailed profiling of programs. Originally developed by Julian Seward in 2002, with contributions from Nicholas Nethercote and others, Valgrind is the standard memory debugging tool for C and C++ programs on Linux. Key tools include: Memcheck (detects memory management problems including use of uninitialized memory, reading and writing beyond allocated memory boundaries, memory leaks, double frees, mismatched malloc and free, and overlapping source and destination in memcpy and strcpy with exact stack traces for allocation and free sites), Cachegrind (cache and branch prediction profiler tracking L1 instruction and data cache, L2 cache, and branch predictor hits and misses for performance optimization), Callgrind (extension of Cachegrind adding call graph profiling for measuring function call counts and costs), Massif (heap profiler measuring heap memory usage over time including allocation site attribution and peak usage detection), Helgrind (thread error detector for data races and deadlocks using a lock-set algorithm for tracking consistent lock acquisition order), DRD (alternative thread error detector with lower overhead and additional detection capabilities for lock order violations and POSIX thread API misuse), DHAT (dynamic heap analysis tool for identifying heap block lifetimes and access patterns), and BBV (basic block vector generator for architecture simulation input). Key features include: no recompilation required (directly runs existing binaries through binary instrumentation), support for x86, amd64, ARM, and PPC architectures, GDB integration (attach GDB debugger when errors are detected via --vgdb option), suppression files (filter known false positives), and low overhead binary translation via just-in-time compilation.
Statistics
2
Views
0
Clicks
0
Like
0
Dislike