Development/Tools/Valgrind: Difference between revisions

From KDE TechBase
(Add --track-origins flag for valgrind)
(Replaced content with "{{ Moved To Community | Guidelines_and_HOWTOs/Valgrind }}")
 
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

This page is now on the community wiki.