1usage: valgrind [options] prog-and-args
2
3  tool-selection option, with default in [ ]:
4    --tool=<name>             use the Valgrind tool named <name> [memcheck]
5
6  basic user options for all Valgrind tools, with defaults in [ ]:
7    -h --help                 show this message
8    --help-debug              show this message, plus debugging options
9    --version                 show version
10    -q --quiet                run silently; only print error msgs
11    -v --verbose              be more verbose -- show misc extra info
12    --trace-children=no|yes   Valgrind-ise child processes (follow execve)? [no]
13    --trace-children-skip=patt1,patt2,...    specifies a list of executables
14                              that --trace-children=yes should not trace into
15    --trace-children-skip-by-arg=patt1,patt2,...   same as --trace-children-skip=
16                              but check the argv[] entries for children, rather
17                              than the exe name, to make a follow/no-follow decision
18    --child-silent-after-fork=no|yes omit child output between fork & exec? [no]
19    --vgdb=no|yes|full        activate gdbserver? [yes]
20                              full is slower but provides precise watchpoint/step
21    --vgdb-error=<number>     invoke gdbserver after <number> errors [999999999]
22                              to get started quickly, use --vgdb-error=0
23                              and follow the on-screen directions
24    --vgdb-stop-at=event1,event2,... invoke gdbserver for given events [none]
25         where event is one of:
26           startup exit valgrindabexit all none
27    --track-fds=no|yes        track open file descriptors? [no]
28    --time-stamp=no|yes       add timestamps to log messages? [no]
29    --log-fd=<number>         log messages to file descriptor [2=stderr]
30    --log-file=<file>         log messages to <file>
31    --log-socket=ipaddr:port  log messages to socket ipaddr:port
32
33  user options for Valgrind tools that report errors:
34    --xml=yes                 emit error output in XML (some tools only)
35    --xml-fd=<number>         XML output to file descriptor
36    --xml-file=<file>         XML output to <file>
37    --xml-socket=ipaddr:port  XML output to socket ipaddr:port
38    --xml-user-comment=STR    copy STR verbatim into XML output
39    --demangle=no|yes         automatically demangle C++ names? [yes]
40    --num-callers=<number>    show <number> callers in stack traces [12]
41    --error-limit=no|yes      stop showing new errors if too many? [yes]
42    --error-exitcode=<number> exit code to return if errors found [0=disable]
43    --error-markers=<begin>,<end> add lines with begin/end markers before/after
44                              each error output in plain text mode [none]
45    --show-below-main=no|yes  continue stack traces below main() [no]
46    --default-suppressions=yes|no
47                              load default suppressions [yes]
48    --suppressions=<filename> suppress errors described in <filename>
49    --gen-suppressions=no|yes|all    print suppressions for errors? [no]
50    --db-attach=no|yes        start debugger when errors detected? [no]
51                              Note: deprecated feature
52    --db-command=<command>    command to start debugger [... -nw %f %p]
53    --input-fd=<number>       file descriptor for input [0=stdin]
54    --dsymutil=no|yes         run dsymutil on Mac OS X when helpful? [no]
55    --max-stackframe=<number> assume stack switch for SP changes larger
56                              than <number> bytes [2000000]
57    --main-stacksize=<number> set size of main thread's stack (in bytes)
58                              [min(max(current 'ulimit' value,1MB),16MB)]
59
60  user options for Valgrind tools that replace malloc:
61    --alignment=<number>      set minimum alignment of heap allocations [not used by this tool]
62    --redzone-size=<number>   set minimum size of redzones added before/after
63                              heap blocks (in bytes). [not used by this tool]
64
65  uncommon user options for all Valgrind tools:
66    --fullpath-after=         (with nothing after the '=')
67                              show full source paths in call stacks
68    --fullpath-after=string   like --fullpath-after=, but only show the
69                              part of the path after 'string'.  Allows removal
70                              of path prefixes.  Use this flag multiple times
71                              to specify a set of prefixes to remove.
72    --extra-debuginfo-path=path    absolute path to search for additional
73                              debug symbols, in addition to existing default
74                              well known search paths.
75    --debuginfo-server=ipaddr:port    also query this server
76                              (valgrind-di-server) for debug symbols
77    --allow-mismatched-debuginfo=no|yes  [no]
78                              for the above two flags only, accept debuginfo
79                              objects that don't "match" the main object
80    --smc-check=none|stack|all|all-non-file [stack]
81                              checks for self-modifying code: none, only for
82                              code found in stacks, for all code, or for all
83                              code except that from file-backed mappings
84    --read-inline-info=yes|no read debug info about inlined function calls
85                              and use it to do better stack traces.  [yes]
86                              on Linux/Android for Memcheck/Helgrind/DRD
87                              only.  [no] for all other tools and platforms.
88    --read-var-info=yes|no    read debug info on stack and global variables
89                              and use it to print better error messages in
90                              tools that make use of it (Memcheck, Helgrind,
91                              DRD) [no]
92    --vgdb-poll=<number>      gdbserver poll max every <number> basic blocks [5000]
93    --vgdb-shadow-registers=no|yes   let gdb see the shadow registers [no]
94    --vgdb-prefix=<prefix>    prefix for vgdb FIFOs [.../vgdb-pipe]
95    --run-libc-freeres=no|yes free up glibc memory at exit on Linux? [yes]
96    --sim-hints=hint1,hint2,...  activate unusual sim behaviours [none]
97         where hint is one of:
98           lax-ioctls fuse-compatible enable-outer
99           no-inner-prefix no-nptl-pthread-stackcache none
100    --fair-sched=no|yes|try   schedule threads fairly on multicore systems [no]
101    --kernel-variant=variant1,variant2,...
102         handle non-standard kernel variants [none]
103         where variant is one of:
104           bproc android-no-hw-tls
105           android-gpu-sgx5xx android-gpu-adreno3xx none
106    --merge-recursive-frames=<number>  merge frames between identical
107           program counters in max <number> frames) [0]
108    --num-transtab-sectors=<number> size of translated code cache [16]
109           more sectors may increase performance, but use more memory.
110    --avg-transtab-entry-size=<number> avg size in bytes of a translated
111           basic block [0, meaning use tool provided default]
112    --aspace-minaddr=0xPP     avoid mapping memory below 0xPP [guessed]
113    --valgrind-stacksize=<number> size of valgrind (host) thread's stack
114                               (in bytes) [1048576]
115    --show-emwarns=no|yes     show warnings about emulation limits? [no]
116    --require-text-symbol=:sonamepattern:symbolpattern    abort run if the
117                              stated shared object doesn't have the stated
118                              text symbol.  Patterns can contain ? and *.
119    --soname-synonyms=syn1=pattern1,syn2=pattern2,... synonym soname
120              specify patterns for function wrapping or replacement.
121              To use a non-libc malloc library that is
122                  in the main exe:  --soname-synonyms=somalloc=NONE
123                  in libxyzzy.so:   --soname-synonyms=somalloc=libxyzzy.so
124    --sigill-diagnostics=yes|no  warn about illegal instructions? [yes]
125    --unw-stack-scan-thresh=<number>   Enable stack-scan unwind if fewer
126                  than <number> good frames found  [0, meaning "disabled"]
127                  NOTE: stack scanning is only available on arm-linux.
128    --unw-stack-scan-frames=<number>   Max number of frames that can be
129                  recovered by stack scanning [5]
130    --resync-filter=no|yes|verbose [yes on MacOS, no on other OSes]
131              attempt to avoid expensive address-space-resync operations
132    --max-threads=<number>    maximum number of threads that valgrind can
133                              handle [500]
134
135  user options for Nulgrind:
136    (none)
137
138  debugging options for all Valgrind tools:
139    -d                        show verbose debugging output
140    --stats=no|yes            show tool and core statistics [no]
141    --sanity-level=<number>   level of sanity checking to do [1]
142    --trace-flags=<XXXXXXXX>   show generated code? (X = 0|1) [00000000]
143    --profile-flags=<XXXXXXXX> ditto, but for profiling (X = 0|1) [00000000]
144    --profile-interval=<number> show profile every <number> event checks
145                                [0, meaning only at the end of the run]
146    --trace-notbelow=<number> only show BBs above <number> [999999999]
147    --trace-notabove=<number> only show BBs below <number> [0]
148    --trace-syscalls=no|yes   show all system calls? [no]
149    --trace-signals=no|yes    show signal handling details? [no]
150    --trace-symtab=no|yes     show symbol table details? [no]
151    --trace-symtab-patt=<patt> limit debuginfo tracing to obj name <patt>
152    --trace-cfi=no|yes        show call-frame-info details? [no]
153    --debug-dump=syms         mimic /usr/bin/readelf --syms
154    --debug-dump=line         mimic /usr/bin/readelf --debug-dump=line
155    --debug-dump=frames       mimic /usr/bin/readelf --debug-dump=frames
156    --trace-redir=no|yes      show redirection details? [no]
157    --trace-sched=no|yes      show thread scheduler details? [no]
158    --profile-heap=no|yes     profile Valgrind's own space use
159    --core-redzone-size=<number>  set minimum size of redzones added before/after
160                              heap blocks allocated for Valgrind internal use (in bytes) [4]
161    --wait-for-gdb=yes|no     pause on startup to wait for gdb attach
162    --sym-offsets=yes|no      show syms in form 'name+offset' ? [no]
163    --command-line-only=no|yes  only use command line options [no]
164
165  Vex options for all Valgrind tools:
166    --vex-iropt-verbosity=<0..9>           [0]
167    --vex-iropt-level=<0..2>               [2]
168    --vex-iropt-unroll-thresh=<0..400>     [120]
169    --vex-guest-max-insns=<1..100>         [50]
170    --vex-guest-chase-thresh=<0..99>       [10]
171    --vex-guest-chase-cond=no|yes          [no]
172    Precise exception control.  Possible values for 'mode' are as follows
173      and specify the minimum set of registers guaranteed to be correct
174      immediately prior to memory access instructions:
175         sp-at-mem-access          stack pointer only
176         unwindregs-at-mem-access  registers needed for stack unwinding
177         allregs-at-mem-access     all registers
178         allregs-at-each-insn      all registers are always correct
179      Default value for all 3 following flags is [unwindregs-at-mem-access].
180      --vex-iropt-register-updates=mode   setting to use by default
181      --px-default=mode      synonym for --vex-iropt-register-updates
182      --px-file-backed=mode  optional setting for file-backed (non-JIT) code
183    Tracing and profile control:
184      --trace-flags and --profile-flags values (omit the middle space):
185         1000 0000   show conversion into IR
186         0100 0000   show after initial opt
187         0010 0000   show after instrumentation
188         0001 0000   show after second opt
189         0000 1000   show after tree building
190         0000 0100   show selecting insns
191         0000 0010   show after reg-alloc
192         0000 0001   show final assembly
193         0000 0000   show summary profile only
194        (Nb: you need --trace-notbelow and/or --trace-notabove
195             with --trace-flags for full details)
196
197  debugging options for Valgrind tools that report errors
198    --dump-error=<number>     show translation for basic block associated
199                              with <number>'th error context [0=show none]
200
201  debugging options for Valgrind tools that replace malloc:
202    --trace-malloc=no|yes     show client malloc details? [no]
203
204  debugging options for Nulgrind:
205    (none)
206
207  Extra options read from ~/.valgrindrc, $VALGRIND_OPTS, ./.valgrindrc
208
209  Nulgrind is Copyright (C) 2002-2013, and GNU GPL'd, by Nicholas Nethercote.
210  Valgrind is Copyright (C) 2000-2013, and GNU GPL'd, by Julian Seward et al.
211  LibVEX is Copyright (C) 2004-2013, and GNU GPL'd, by OpenWorks LLP et al.
212
213  Bug reports, feedback, admiration, abuse, etc, to: www.valgrind.org.
214
215