Valgrind 3.2.0 review

by on

Valgrind is an award-winning suite of tools for debugging and profiling Linux programs

License: GPL (GNU General Public License)
File size: 3963K
Developer: Valgrind Developers
0 stars award from

Valgrind is an award-winning suite of tools for debugging and profiling Linux programs. With the tools that come with Valgrind, you can automatically detect many memory management and threading bugs, avoiding hours of frustrating bug-hunting, making your programs more stable. You can also perform detailed profiling, to speed up and reduce memory use of your programs.

Valgrind distribution currently includes three tools: a memory error detectors, a cache (time) profiler and a heap (space) profiler.

Valgrind is Open Source / Free Software, and is freely available under the GNU General Public License.

Here are some key features of "Valgrind":
Valgrind will save you hours of debugging time. With Valgrind tools you can automatically detect many memory management and threading bugs. This gives you confidence that your programs are free of many common bugs, some of which would take hours to find manually, or never be found at all. You can find and eliminate bugs before they become a problem.
Valgrind can help you speed up your programs. With Valgrind tools you can also perform very detailed profiling to help speed up your programs.
Valgrind is free. Free-as-in-speech: you can download it, read the source code, make modifications, and pass them on, all within the limits of the GNU GPL. And free-as-in-beer: we aren't charging for it.
Valgrind runs on x86/Linux, AMD64/Linux and PPC32/Linux, several of the most popular platforms in use. Valgrind works with all the major Linux distributions, including Red Hat, SuSE, Debian, Gentoo, Slackware, Mandrake, etc.
Valgrind is easy to use. Valgrind uses dynamic binary translation, so you don't need to modify, recompile or relink your applications. Just prefix your command line with valgrind and everything works.
Valgrind is not a toy. Valgrind is first and foremost a debugging and profiling system for large, complex programs. We have had feedback from users working on projects with up to 25 million lines of code. It has been used on projects of all sizes, from single-user personal projects, to projects with hundreds of programmers.
Valgrind is suitable for any type of software. Valgrind has been used on almost every kind of software imaginable: desktop applications, libraries, databases, games, web browsers, network servers, distributed control systems, virtual reality frameworks, transaction servers, compilers, interpreters, virtual machines, telecom applications, embedded software, medical imaging, scientific programming, signal processing, video/audio programs, NASA Mars lander vision and rover navigation systems, business intelligence software, financial/banking software, operating system daemons, etc, etc. See a list of projects using Valgrind.
Valgrind is widely used. Valgrind has been used by thousands of programmers across the world. We have received feedback from users in over 25 countries, including: Belgium, Czech Republic, Denmark, Finland, France, Germany, Greece, Hungary, Italy, The Netherlands, Norway, Poland, Portugal, Russia, Sweden, Switzerland, UK, Argentina, Brazil, Canada, USA, Australia, India, Japan, New Zealand, Singapore, South Africa and Israel.
Valgrind works with programs written in any language. Because Valgrind works directly with program binaries, it works with programs written in any programming language, be they compiled, just-in-time compiled, or interpreted. The Valgrind tools are largely aimed at programs written in C and C++, because programs written in these languages tend to have the most bugs! But it can, for example, be used to debug and profile systems written in a mixture of languages. Valgrind has been used on programs written partly or entirely in C, C++, Java, Perl, Python, assembly code, Fortran, Ada, and many others.
Valgrind debugs and profiles your entire program. Unlike tools that require a recompilation step, Valgrind gives you total debugging and profiling coverage of every instruction executed by your program, even within system libraries. You can even use Valgrind on programs for which you don't have the source code.
Valgrind can be used with other tools. Valgrind can start GDB and attach it to your program at the point(s) where errors are detected, so that you can poke around and figure out what was going on at the time.
Valgrind is extensible. Valgrind consists of the Valgrind core, which provides a synthetic software CPU, and Valgrind tools, which plug into the core, and instrument and analyse the running program. Anyone can write powerful new tools that add arbitrary instrumentation to programs. This is much easier than writing such tools from scratch. This makes Valgrind ideal for experimenting with new kinds of debuggers, profilers, and similar tools.
Valgrind is actively maintained. The Valgrind developers are constantly working to fix bugs, improve Valgrind, and ensure it works as new Linux distributions and libraries come out. There are also mailing lists you can subscribe to, and contact if you're having problems.

So what's the catch? The main one is that programs run significantly more slowly under Valgrind. Depending on which tool you use, the slowdown factor can range from 5--100. This slowdown is similar to that of similar debugging and profiling tools. But since you don't have to use Valgrind all the time, this usually isn't too much of a problem. The hours you'll save debugging will more than make up for it.

Valgrind 3.2.0 search tags