strings corefile | sort | uniq -c | sort -n {endverbatim} -{section: How to use valgrind to check for memory leaks} +{section: How to use valgrind to check a daemon for memory leaks} Valgrind is a powerful tool for catching memory leaks and sources of bloat. The main disadvantage of the tool is that it slows things down quite a lot (~20 times in my experience). You also need to stop the running daemon and restart it under valgrind. @@ -34,6 +34,18 @@ valgrind gives more detailed information when you run it with an unstripped binary (including line numbers in the call stack). +{section: How to use valgrind to check all the daemons for memory leaks} + +valgrind can be told to follow all forked/execed children and where to dump +its output. So we'll do just that and start up the master. You can either be +root or a normal user for this, depending upon what you are testing. + +{verbatim} +valgrind --tool=memcheck --leak-check=yes --show-reachable=yes --leak-resolution=high --log-file=/tmp/valgrind.log --trace-children=true --num-callers=16 condor_master +{endverbatim} + +After the daemons have come up, run the condor_tests test suite. + {section: How to use the google heap profiler} The google heap profiler is part of the google-perftools package, which may be easily downloaded and compiled. This example used version 0.98.