Alternative to valgrind (memcheck) for finding leaks on linux?

jhfrontz picture jhfrontz · Sep 14, 2011 · Viewed 17k times · Source

I have a linux x86 application that makes use of various third-party shared-object libraries. I suspect these libraries are leaking memory (since it can't possibly be my code ;-)

I tried the trusty valgrind, but it died a horrible death because one of the third-party libraries is using an obscure x86 instruction that valgrind doesn't implement.

I found a recommendation for DUMA and gave it a try (using the LD_PRELOAD technique to bring DUMA in at run-time), but it aborted complaining about a free operation on memory that wasn't allocated via DUMA (almost certainly by some constructor of a static object in one of the previously mentioned third-party libraries).

Are there other run-time-linkable (or otherwise not requiring a recompilation/relink) tools around that will work on linux?

Answer

Mircea picture Mircea · Sep 14, 2011

The TotalView debugger (or, more precisely, its Memscope) has a feature set similar to the one of Valgrind.

You can also try Electric Fence (original author's link) (the origin of DUMA) for buffer overflows or touch-after-free cases (but not for memleaks, though).