views:

251

answers:

6

Hi guys,

Is there a good application (that has some kind of gui) for testing memory leaks in c code. I would really like to test my assignment/programme but being very new to this, i struggle with using the terminal to do things, especially using gdb for debugging (to me it feels like a blast from the past, where i could be using some visual debugger).

Thanks for the help

edit: platform doesn't matter - i am running everything ;)

+13  A: 

Depending on the platform (you don't mention it) Valgrind is fantastic on Linux systems. It has no GUI, but doesn't need one.

Just run valgrind <path to your application + arguments> and it will run your application and spit out any errors during memory operations.

Add the --leak-check=full and --show-reachable=yes options after valgrind to get stack-traces of where your memory leaks originate.

Andy Shellam
"It has no GUI, but doesn't need one" -- I beg to differ, especially since the OP specifically confessed to being uncomfortable with the command line. That said, valgrind's the best tool I know of.
ptomato
i can manage the command line if i no what i am typing i suppose, as long as the commands are not to taxing. I struggle with doing lots of terminal stuff, but if its minimal commands and i can just read the output then that should be ok i guess?
sbsp
@sbsp: Once you see the kind of detail val-grind produces, you won't mind. :) (It's *awesome*.)
GMan
@ptomato - I've been using Valgrind for about 3 years, and the only two options I know (and need) are those two I gave in my answer. If the OP has at least managed to use GDB (which by the sound of it, they have) then Valgrind will be a piece of cake. I actually use Valgrind for debugging some times :)
Andy Shellam
If you are using Eclipse, then valgrind can be integrated into the IDE using the Linux Tools module (http://www.eclipse.org/linuxtools/).
Let_Me_Be
@Let_Me_Be - ooh, great tip! +1
Andy Shellam
A: 

valgrind is pretty good on Linux, but it only has a command line interface

Tuomas Pelkonen
+2  A: 

Purify is a great application for this.

mouviciel
+1  A: 

There's a gui for analyzing valgrind results: http://alleyoop.sourceforge.net/. Besides, there's (non-free) purify which is great, and i believe there's a trial. It has a GUI.


Drakosha
A: 

On Windows, HeapMon may be of some interest, although it does not explicitly tell you where are your leaks.

Adrien Plisson
A: 

If you're using Microsoft's DevStudio then the C run-time library has plenty of memory allocation tracking tools already built-in:

The Debug Heap

_CrtSetDbgFlag

It amazes me how few programmers seem to be aware of these tools!

Skizz