|
|
Line 1: |
Line 1: |
| Valgrind is a [[Development/Tools|tool]] to analyze a program regarding memory leaks.
| | {{ Moved To Community | Guidelines_and_HOWTOs/Valgrind }} |
| | |
| == Leak Detection ==
| |
| One of the valgrind tools is the memcheck, that can be used to detect memory leaks during the execution of an application.
| |
| | |
| To do that, valgrind can be started as:
| |
| > valgrind --tool=memcheck --leak-check=yes -v ''appname''
| |
| where ''appname'' is the application you want to run, including its parameters, if it have to be called with any.
| |
| | |
| As valgrind can produce a lot of output (and thus scroll out of your terminal), you can call valgrind redirecting its output to a file, so nothing gets lost.
| |
| > valgrind --tool=memcheck --leak-check=yes -v ''appname'' 2>&1 | tee valgrind.log
| |
| This will call valgrind as seen above, and will redirect all the output coming from both our application and valgrind to a file in the current directory called {{path|valgrind.log}} (of course it is possible to use any file name of the log).
| |
| | |
| === Minor tweaks ===
| |
| | |
| * executing valgrind with <tt>--leak-check=full</tt> instead of <tt>--leak-check=yes</tt> can give a more detailed output, especially about the found leaks
| |
| | |
| * Using the <tt>--track-origins=yes</tt> flag is even slower than normal Valgrind but gives you the location where the memory used incorrectly was allocated in many situations.
| |
| | |
| == References ==
| |
| * [http://www.valgrind.org/ The Valgrind Homepage]
| |
| * [http://www.tldp.org/HOWTO/Valgrind-HOWTO/ Excellent tutorial at TLDP]
| |
Latest revision as of 12:15, 11 March 2016