1ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownusage: valgrind [options] prog-and-args
2ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
3ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  tool-selection option, with default in [ ]:
4ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --tool=<name>             use the Valgrind tool named <name> [memcheck]
5ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
6ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  basic user options for all Valgrind tools, with defaults in [ ]:
7ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    -h --help                 show this message
8ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --help-debug              show this message, plus debugging options
9ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --version                 show version
10ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    -q --quiet                run silently; only print error msgs
11ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    -v --verbose              be more verbose -- show misc extra info
12ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --trace-children=no|yes   Valgrind-ise child processes (follow execve)? [no]
13ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --trace-children-skip=patt1,patt2,...    specifies a list of executables
14ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown                              that --trace-children=yes should not trace into
15b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov    --trace-children-skip-by-arg=patt1,patt2,...   same as --trace-children-skip=
16b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov                              but check the argv[] entries for children, rather
17b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov                              than the exe name, to make a follow/no-follow decision
18ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --child-silent-after-fork=no|yes omit child output between fork & exec? [no]
19b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov    --vgdb=no|yes|full        activate gdbserver? [yes]
20b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov                              full is slower but provides precise watchpoint/step
21b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov    --vgdb-error=<number>     invoke gdbserver after <number> errors [999999999]
22b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov                              to get started quickly, use --vgdb-error=0
23b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov                              and follow the on-screen directions
24eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    --vgdb-stop-at=event1,event2,... invoke gdbserver for given events [none]
25eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov         where event is one of startup exit valgrindabexit all none
26ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --track-fds=no|yes        track open file descriptors? [no]
27ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --time-stamp=no|yes       add timestamps to log messages? [no]
28ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --log-fd=<number>         log messages to file descriptor [2=stderr]
29ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --log-file=<file>         log messages to <file>
30ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --log-socket=ipaddr:port  log messages to socket ipaddr:port
31ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
32ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  user options for Valgrind tools that report errors:
33ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --xml=yes                 emit error output in XML (some tools only)
34ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --xml-fd=<number>         XML output to file descriptor
35ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --xml-file=<file>         XML output to <file>
36ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --xml-socket=ipaddr:port  XML output to socket ipaddr:port
37ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --xml-user-comment=STR    copy STR verbatim into XML output
38ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --demangle=no|yes         automatically demangle C++ names? [yes]
39ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --num-callers=<number>    show <number> callers in stack traces [12]
40ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --error-limit=no|yes      stop showing new errors if too many? [yes]
41ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --error-exitcode=<number> exit code to return if errors found [0=disable]
42ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --show-below-main=no|yes  continue stack traces below main() [no]
43ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --suppressions=<filename> suppress errors described in <filename>
44ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --gen-suppressions=no|yes|all    print suppressions for errors? [no]
45ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --db-attach=no|yes        start debugger when errors detected? [no]
46ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --db-command=<command>    command to start debugger [... -nw %f %p]
47ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --input-fd=<number>       file descriptor for input [0=stdin]
48ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --dsymutil=no|yes         run dsymutil on Mac OS X when helpful? [no]
49ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --max-stackframe=<number> assume stack switch for SP changes larger
50ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown                              than <number> bytes [2000000]
51ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --main-stacksize=<number> set size of main thread's stack (in bytes)
52436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov                              [min(max(current 'ulimit' value,1MB),16MB)]
53ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
54ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  user options for Valgrind tools that replace malloc:
55663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    --alignment=<number>      set minimum alignment of heap allocations [not used by this tool]
56663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    --redzone-size=<number>   set minimum size of redzones added before/after
57663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng                              heap blocks (in bytes). [not used by this tool]
58ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
59ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  uncommon user options for all Valgrind tools:
60ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --fullpath-after=         (with nothing after the '=')
61ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown                              show full source paths in call stacks
62ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --fullpath-after=string   like --fullpath-after=, but only show the
63ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown                              part of the path after 'string'.  Allows removal
64ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown                              of path prefixes.  Use this flag multiple times
65ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown                              to specify a set of prefixes to remove.
66436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    --extra-debuginfo-path=path    absolute path to search for additional
67436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov                              debug symbols, in addition to existing default
68436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov                              well known search paths.
69436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    --debuginfo-server=ipaddr:port    also query this server
70436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov                              (valgrind-di-server) for debug symbols
71436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    --allow-mismatched-debuginfo=no|yes  [no]
72436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov                              for the above two flags only, accept debuginfo
73436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov                              objects that don't "match" the main object
74b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov    --smc-check=none|stack|all|all-non-file [stack]
75b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov                              checks for self-modifying code: none, only for
76b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov                              code found in stacks, for all code, or for all
77b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov                              code except that from file-backed mappings
78ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --read-var-info=yes|no    read debug info on stack and global variables
79ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown                              and use it to print better error messages in
80ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown                              tools that make use of it (Memcheck, Helgrind,
81ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown                              DRD) [no]
82b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov    --vgdb-poll=<number>      gdbserver poll max every <number> basic blocks [5000]
83b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov    --vgdb-shadow-registers=no|yes   let gdb see the shadow registers [no]
84b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov    --vgdb-prefix=<prefix>    prefix for vgdb FIFOs [/tmp/vgdb-pipe]
85ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --run-libc-freeres=no|yes free up glibc memory at exit on Linux? [yes]
86ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --sim-hints=hint1,hint2,...  known hints:
87b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov                                 lax-ioctls, enable-outer, fuse-compatible [none]
88663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    --fair-sched=no|yes|try   schedule threads fairly on multicore systems [no]
89ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --kernel-variant=variant1,variant2,...  known variants: bproc [none]
90ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown                              handle non-standard kernel variants
91436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    --merge-recursive-frames=<number>  merge frames between identical
92436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov           program counters in max <number> frames) [0]
93436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    --num-transtab-sectors=<number> size of translated code cache [16]
94436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov           more sectors may increase performance, but use more memory.
95eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    --aspace-minaddr=0xPP     avoid mapping memory below 0xPP [guessed]
96ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --show-emwarns=no|yes     show warnings about emulation limits? [no]
97ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --require-text-symbol=:sonamepattern:symbolpattern    abort run if the
98ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown                              stated shared object doesn't have the stated
99ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown                              text symbol.  Patterns can contain ? and *.
100663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    --soname-synonyms=syn1=pattern1,syn2=pattern2,... synonym soname
101663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng              specify patterns for function wrapping or replacement.
102663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng              To use a non-libc malloc library that is
103663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng                  in the main exe:  --soname-synonyms=somalloc=NONE
104663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng                  in libxyzzy.so:   --soname-synonyms=somalloc=libxyzzy.so
105436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    --sigill-diagnostics=yes|no  warn about illegal instructions? [yes]
106436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    --unw-stack-scan-thresh=<number>   Enable stack-scan unwind if fewer
107436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov                  than <number> good frames found  [0, meaning "disabled"]
108436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov                  NOTE: stack scanning is only available on arm-linux.
109436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    --unw-stack-scan-frames=<number>   Max number of frames that can be
110436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov                  recovered by stack scanning [5]
111ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
112ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  user options for Nulgrind:
113ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    (none)
114ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
115ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  debugging options for all Valgrind tools:
116ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    -d                        show verbose debugging output
117ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --stats=no|yes            show tool and core statistics [no]
118ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --sanity-level=<number>   level of sanity checking to do [1]
119ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --trace-flags=<XXXXXXXX>   show generated code? (X = 0|1) [00000000]
120ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --profile-flags=<XXXXXXXX> ditto, but for profiling (X = 0|1) [00000000]
121436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    --profile-interval=<number> show profile every <number> event checks
122436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov                                [0, meaning only at the end of the run]
123ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --trace-notbelow=<number> only show BBs above <number> [999999999]
124663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    --trace-notabove=<number> only show BBs below <number> [0]
125ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --trace-syscalls=no|yes   show all system calls? [no]
126ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --trace-signals=no|yes    show signal handling details? [no]
127ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --trace-symtab=no|yes     show symbol table details? [no]
128ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --trace-symtab-patt=<patt> limit debuginfo tracing to obj name <patt>
129ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --trace-cfi=no|yes        show call-frame-info details? [no]
130ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --debug-dump=syms         mimic /usr/bin/readelf --syms
131ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --debug-dump=line         mimic /usr/bin/readelf --debug-dump=line
132ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --debug-dump=frames       mimic /usr/bin/readelf --debug-dump=frames
133ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --trace-redir=no|yes      show redirection details? [no]
134ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --trace-sched=no|yes      show thread scheduler details? [no]
135ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --profile-heap=no|yes     profile Valgrind's own space use
136436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    --core-redzone-size=<number>  set minimum size of redzones added before/after
137663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng                              heap blocks allocated for Valgrind internal use (in bytes) [4]
138ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --wait-for-gdb=yes|no     pause on startup to wait for gdb attach
139ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --sym-offsets=yes|no      show syms in form 'name+offset' ? [no]
140ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --command-line-only=no|yes  only use command line options [no]
141ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
142ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  Vex options for all Valgrind tools:
143ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --vex-iropt-verbosity=<0..9>           [0]
144ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --vex-iropt-level=<0..2>               [2]
145436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    --vex-iropt-register-updates=sp-at-mem-access
146436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov                                |unwindregs-at-mem-access
147663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng                                |allregs-at-mem-access
148663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng                                |allregs-at-each-insn  [unwindregs-at-mem-access]
149ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --vex-iropt-unroll-thresh=<0..400>     [120]
150ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --vex-guest-max-insns=<1..100>         [50]
151ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --vex-guest-chase-thresh=<0..99>       [10]
152ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --vex-guest-chase-cond=no|yes          [no]
153ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --trace-flags and --profile-flags values (omit the middle space):
154ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown       1000 0000   show conversion into IR
155ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown       0100 0000   show after initial opt
156ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown       0010 0000   show after instrumentation
157ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown       0001 0000   show after second opt
158ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown       0000 1000   show after tree building
159ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown       0000 0100   show selecting insns
160ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown       0000 0010   show after reg-alloc
161ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown       0000 0001   show final assembly
162436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov       0000 0000   show summary profile only
163436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov      (Nb: you need --trace-notbelow and/or --trace-notabove
164436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov           with --trace-flags for full details)
165ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
166ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  debugging options for Valgrind tools that report errors
167ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --dump-error=<number>     show translation for basic block associated
168ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown                              with <number>'th error context [0=show none]
169ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
170ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  debugging options for Valgrind tools that replace malloc:
171ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    --trace-malloc=no|yes     show client malloc details? [no]
172ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
173ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  debugging options for Nulgrind:
174ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    (none)
175ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
176ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  Extra options read from ~/.valgrindrc, $VALGRIND_OPTS, ./.valgrindrc
177ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
178436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  Nulgrind is Copyright (C) 2002-2013, and GNU GPL'd, by Nicholas Nethercote.
179436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  Valgrind is Copyright (C) 2000-2013, and GNU GPL'd, by Julian Seward et al.
180436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  LibVEX is Copyright (C) 2004-2013, and GNU GPL'd, by OpenWorks LLP et al.
181ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
182ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  Bug reports, feedback, admiration, abuse, etc, to: www.valgrind.org.
183ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
184