We are pleased to announce a new stable release of Valgrind, version 2.2.0.It is available from
http://valgrind.kde.org.
Valgrind is an award-winning, open-source tool suite for
debugging and profiling x86-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 time and space profiling to help speed up and
slim down your programs.
2.2.0 brings nine months worth of improvements and bug fixes.
We believe it to be a worthy successor to the previous stable
release, 2.0.0. There are literally hundreds of bug fixes and
minor improvements. There are also some fairly major
user-visible changes:
- A complete overhaul of handling of system calls and signals,
and their interaction with threads. In general, the accuracy of
the system call, thread and signal simulations is much improved:- Blocking system calls behave exactly as they do when
running natively (not on valgrind). That is, if a syscall
blocks only the calling thread when running natively, than it
behaves the same on valgrind. No more mysterious hangs
because V doesn’t know that some syscall or other, should
block only the calling thread. - Interrupted syscalls should now give more faithful
results. - Signal contexts in signal handlers are supported.
- Blocking system calls behave exactly as they do when
- Improvements to NPTL support to the extent that V now works
properly on NPTL-only setups. - Greater isolation between Valgrind and the program being
run, so the program is less likely to inadvertently kill
Valgrind by doing wild writes. - Massif: a new space profiling tool. Try it! It’s cool,
and it’ll tell you in detail where and when your C/C++ code is
allocating heap. Draws pretty .ps pictures of memory use
against time. A potentially powerful tool for making sense of
your program’s space use. - File descriptor leakage checks. When enabled, Valgrind
will print out a list of open file descriptors on exit. - Improved SSE2/SSE3 support.
- Time-stamped output; use –time-stamp=yes
Happy (and productive) debugging and profiling,
— The Valgrind developers
… the greatest thing since sliced bread!
sliced bread is nothing compared to valgrind.
YAY!
Valgrind is, in my opinion, one of the best development tools ever made. I know it has saved me lots of headaches, and hours of debugging and hunting for some misterious memory leaks. It is just amazing that such a great thing is free.
Can you tell me where I can download this Windows-compatible sliced bread?
This is an incredible tool. I wish there would be similar tools to for embedded systems as well.
I wish news posts like this would tell you what the item in question is.
From reading the comments, I gather that it’s some sort of development tool, but hey, I have EMACS and make… 😉
– chrish
Valgrind is a multifaceted tool that encompasses a number of areas of debugging and profiling, but perhaps its most famous facet is memcheck.
Operating in memcheck mode, Valgrind starts an x86 CPU simulator, then runs a program of the user’s choosing on the simulator. As the program runs, memcheck audits every memory operation, so it’s able to report invalid memory operations (such as writing past the end of a buffer or dereferencing a null pointer) immediately as they occur. When the hosted program is finished, Valgrind can analyze the memory that remains allocated and produce a report of the memory that is definitely leaked (no more pointers point to it), as well as memory that might be leaked (hasn’t been freed, but still has pointers pointing to it). In each of these cases, Valgrind can report which line of code allocated which block of memory.
it is used in debugging firebird project
Maybe a lame question, but is there any possibility of create a portable profiler, separating code platform-dependent a la GCC?