$Id$ Any new C++ application should be valgrinded from the start. Unfortunately, QT and Gtk contain 1000s of leaks (or optimizations that look like leaks to valgrind), but there are ways to suppress those warnings. But, you got to prepare before doing changes by producing a suppression file with (supposed-to-be) clean binaries. valgrinding always has to happen in the /Debug directory: cd Debug First, get gnome.org's suppression list: wget http://www.gnome.org/~johan/gtk.suppression -O gnome.org_gtk.supp At least once, touch libs_karmic_amd64.supp so you can re-use the same command line: touch libs_karmic_amd64.supp Then do test runs and play around: G_SLICE=always-malloc G_DEBUG=gc-friendly valgrind \ --leak-check=yes \ --suppressions=gnome.org_gtk.supp \ --suppressions=libs_karmic_amd64.supp \ --gen-suppressions=all \ ./csvedit -v ../test.csv 2>&1 |tee valgrind.log If you are sure no errors from yourself are open (search for .cpp), to add the suppressions to the libs_karmic_amd64.supp file: cat valgrind.log |egrep -v "^(==|--|20)" >>libs_karmic_amd64.supp You may repeat this step whenever valgrind finds errors outside the scope of the application. But, please, do not check in any .supp files, they get way too large and are far too specific to details of your exact environment. Now add or change whatever you want do not consider your work done unless functional tests with valgrind running produce satisfying results.