Valgrind Cheatsheet
Valgrind is a great tools for dynamic checking.
Basic Usage
The most basic use of valgrind is checking memory leak.
valgrind --tool=memcheck --leak-check=full <program>
Profiling with calgrind
The second use of valgrind is to show the dynamic running time for certain
function and the invoking relation between functions.
valgrind --tool=callgrind <program>
To visualize the calgrind result, my best practice is an combination gprof2dot.py
and graphviz. gprof2dot.py can be obtained from pypi or the project
homepage.
Luckily, the author is still maintaining this tools.
Combining these tools can be easily done by the following commands:
valgrind --tool=callgrind --callgrind-out-file=/tmp/callgrind.output <program>
./gprof2dot.py --format=callgrind --output=/tmp/call.dot -w /tmp/callgrind.output
dot -Tpng -o /tmp/graph.png /tmp/call.dot
At the end, you will get a .png file representing the function executing time and relations between their invoking.