General options

Syntax: valgrind [options] <your-program> <args>

  • –db-attach=yes : to automatically attach gdb on errors
  • –error-limit=no : to display all errors even if there are a lot of them
  • –num-callers=50 : to increase the maximum backtrace displayed



Memory checker (default tool).

Syntax: valgrind [–tool=memcheck] [options] <your-program> <args>

  • –leak-check=full : to completely analyse memory leaks
  • –show-reachable=yes: to show the detail of reachable memory
  • –track-origins=yes : to display where was allocated the “uninitialized value”


Memory profiling.

Syntax: valgrind –tool=massif [options] <your-program> <args> ; ms_print massif.<pid>

  • –time-unit=B : display results in bytes


Performance profiling, to find time taken in functions and number of calls of functions.

Syntax: valgrind –tool=callgrind <program-compiled-O2> <args> ; kcachegrind callgrind.out.xxxx ; calgrind_control


CPU cache profiling, to find cache misses.

Syntax: valgrind –tool=cachegrind <program-compiled-O2> <args>

Always do profiling with optimization options of compiler, or you could optimize things that the compiler already automatically does.

software/valgrind.txt · Last modified: 2013/09/19 16:40 (external edit)
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki