blob: 580fa1968052ccd0d25ae08e7720d6e32f599896 [file] [log] [blame]
njn00cfcfc2005-11-12 18:53:50 +00001usage: valgrind [options] prog-and-args
nethercotef4928da2004-06-15 10:54:40 +00002
njn97db7612009-08-04 02:32:55 +00003 tool-selection option, with default in [ ]:
sewardjb5f6f512005-03-10 23:59:00 +00004 --tool=<name> use the Valgrind tool named <name> [memcheck]
njn97db7612009-08-04 02:32:55 +00005
6 basic user options for all Valgrind tools, with defaults in [ ]:
nethercotea76368b2004-06-16 11:56:29 +00007 -h --help show this message
nethercotef4928da2004-06-15 10:54:40 +00008 --help-debug show this message, plus debugging options
9 --version show version
10 -q --quiet run silently; only print error msgs
sewardj2d9e8742009-08-07 15:46:56 +000011 -v --verbose be more verbose -- show misc extra info
njn374a36d2007-11-23 01:41:32 +000012 --trace-children=no|yes Valgrind-ise child processes (follow execve)? [no]
sewardj06421272009-11-05 08:55:13 +000013 --trace-children-skip=patt1,patt2,... specifies a list of executables
14 that --trace-children=yes should not trace into
sewardj9ab64a42010-12-06 11:40:04 +000015 --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
njn97db7612009-08-04 02:32:55 +000018 --child-silent-after-fork=no|yes omit child output between fork & exec? [no]
sewardj3b290482011-05-06 21:02:55 +000019 --vgdb=no|yes|full activate gdbserver? [yes]
20 full is slower but provides precise watchpoint/step
sewardj1568e172011-06-18 08:28:04 +000021 --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
philippe180a7502014-04-20 13:41:10 +000024 --vgdb-stop-at=event1,event2,... invoke gdbserver for given events [none]
sewardj122f6af2014-09-03 21:58:54 +000025 where event is one of:
26 startup exit valgrindabexit all none
nethercote0d588502004-06-21 13:27:11 +000027 --track-fds=no|yes track open file descriptors? [no]
thughes6233a382004-08-21 11:10:44 +000028 --time-stamp=no|yes add timestamps to log messages? [no]
njnce545552005-07-25 22:36:52 +000029 --log-fd=<number> log messages to file descriptor [2=stderr]
njn374a36d2007-11-23 01:41:32 +000030 --log-file=<file> log messages to <file>
njnce545552005-07-25 22:36:52 +000031 --log-socket=ipaddr:port log messages to socket ipaddr:port
nethercotef4928da2004-06-15 10:54:40 +000032
nethercotef4928da2004-06-15 10:54:40 +000033 user options for Valgrind tools that report errors:
sewardj8fd87582009-07-15 14:52:02 +000034 --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
nethercotef4928da2004-06-15 10:54:40 +000039 --demangle=no|yes automatically demangle C++ names? [yes]
njn20b4a152005-10-19 22:39:40 +000040 --num-callers=<number> show <number> callers in stack traces [12]
nethercotef4928da2004-06-15 10:54:40 +000041 --error-limit=no|yes stop showing new errors if too many? [yes]
sewardj365985f2006-05-13 01:54:15 +000042 --error-exitcode=<number> exit code to return if errors found [0=disable]
philippe7b3d3562014-11-12 19:43:29 +000043 --error-markers=<begin>,<end> add lines with begin/end markers before/after
44 each error output in plain text mode [none]
nethercotef4928da2004-06-15 10:54:40 +000045 --show-below-main=no|yes continue stack traces below main() [no]
barta6efdfa2014-06-24 05:08:21 +000046 --default-suppressions=yes|no
47 load default suppressions [yes]
nethercotef4928da2004-06-15 10:54:40 +000048 --suppressions=<filename> suppress errors described in <filename>
sewardj09272c72005-01-11 14:21:02 +000049 --gen-suppressions=no|yes|all print suppressions for errors? [no]
nethercotef4928da2004-06-15 10:54:40 +000050 --input-fd=<number> file descriptor for input [0=stdin]
sewardj29dd9e62015-08-31 14:37:25 +000051 --dsymutil=no|yes run dsymutil on Mac OS X when helpful? [yes]
sewardj412ad6e2005-04-03 00:16:11 +000052 --max-stackframe=<number> assume stack switch for SP changes larger
53 than <number> bytes [2000000]
sewardj95d86c02007-12-18 01:49:23 +000054 --main-stacksize=<number> set size of main thread's stack (in bytes)
philippe3bcd51d2013-06-12 21:45:39 +000055 [min(max(current 'ulimit' value,1MB),16MB)]
nethercotef4928da2004-06-15 10:54:40 +000056
njn97db7612009-08-04 02:32:55 +000057 user options for Valgrind tools that replace malloc:
philipped99c26a2012-07-31 22:17:28 +000058 --alignment=<number> set minimum alignment of heap allocations [not used by this tool]
59 --redzone-size=<number> set minimum size of redzones added before/after
60 heap blocks (in bytes). [not used by this tool]
njn97db7612009-08-04 02:32:55 +000061
62 uncommon user options for all Valgrind tools:
sewardj14cdbf82010-10-12 00:44:05 +000063 --fullpath-after= (with nothing after the '=')
64 show full source paths in call stacks
65 --fullpath-after=string like --fullpath-after=, but only show the
66 part of the path after 'string'. Allows removal
67 of path prefixes. Use this flag multiple times
68 to specify a set of prefixes to remove.
sewardj8b6573d2012-12-05 22:15:14 +000069 --extra-debuginfo-path=path absolute path to search for additional
70 debug symbols, in addition to existing default
71 well known search paths.
sewardje5b6cc42013-07-02 20:47:24 +000072 --debuginfo-server=ipaddr:port also query this server
73 (valgrind-di-server) for debug symbols
74 --allow-mismatched-debuginfo=no|yes [no]
75 for the above two flags only, accept debuginfo
76 objects that don't "match" the main object
sewardj6d9a3382015-08-31 13:05:35 +000077 --smc-check=none|stack|all|all-non-file [all-non-file]
sewardj6dbcc632011-06-07 21:39:28 +000078 checks for self-modifying code: none, only for
79 code found in stacks, for all code, or for all
80 code except that from file-backed mappings
philippea0a73932014-06-15 15:42:20 +000081 --read-inline-info=yes|no read debug info about inlined function calls
sewardj47c6d142014-09-12 09:22:36 +000082 and use it to do better stack traces. [yes]
iraisr4e1d9462015-09-01 11:51:16 +000083 on Linux/Android/Solaris for Memcheck/Helgrind/DRD
sewardj47c6d142014-09-12 09:22:36 +000084 only. [no] for all other tools and platforms.
njn97db7612009-08-04 02:32:55 +000085 --read-var-info=yes|no read debug info on stack and global variables
86 and use it to print better error messages in
87 tools that make use of it (Memcheck, Helgrind,
bartf6122a02010-03-27 07:38:39 +000088 DRD) [no]
sewardj3b290482011-05-06 21:02:55 +000089 --vgdb-poll=<number> gdbserver poll max every <number> basic blocks [5000]
90 --vgdb-shadow-registers=no|yes let gdb see the shadow registers [no]
florian5d00ec62014-10-20 20:59:13 +000091 --vgdb-prefix=<prefix> prefix for vgdb FIFOs [.../vgdb-pipe]
njn97db7612009-08-04 02:32:55 +000092 --run-libc-freeres=no|yes free up glibc memory at exit on Linux? [yes]
philippeec905f72014-08-17 20:03:51 +000093 --sim-hints=hint1,hint2,... activate unusual sim behaviours [none]
sewardj122f6af2014-09-03 21:58:54 +000094 where hint is one of:
sewardj8eb8bab2015-07-21 14:44:28 +000095 lax-ioctls lax-doors fuse-compatible enable-outer
philippe98486902014-08-19 22:46:44 +000096 no-inner-prefix no-nptl-pthread-stackcache none
bart78bfc712011-12-08 16:14:59 +000097 --fair-sched=no|yes|try schedule threads fairly on multicore systems [no]
sewardj4450a0e2014-09-03 15:19:25 +000098 --kernel-variant=variant1,variant2,...
99 handle non-standard kernel variants [none]
100 where variant is one of:
sewardj124e56d2014-09-06 14:45:12 +0000101 bproc android-no-hw-tls
sewardj4450a0e2014-09-03 15:19:25 +0000102 android-gpu-sgx5xx android-gpu-adreno3xx none
philippe46207652013-01-20 17:11:58 +0000103 --merge-recursive-frames=<number> merge frames between identical
104 program counters in max <number> frames) [0]
philippe8e1bee42013-10-18 00:08:20 +0000105 --num-transtab-sectors=<number> size of translated code cache [16]
sewardja11ec172013-10-18 11:18:45 +0000106 more sectors may increase performance, but use more memory.
philippe924c8522015-03-15 12:24:19 +0000107 --avg-transtab-entry-size=<number> avg size in bytes of a translated
108 basic block [0, meaning use tool provided default]
philippee4d78122014-04-20 14:20:37 +0000109 --aspace-minaddr=0xPP avoid mapping memory below 0xPP [guessed]
philipped0720e42015-03-12 20:43:46 +0000110 --valgrind-stacksize=<number> size of valgrind (host) thread's stack
111 (in bytes) [1048576]
njn97db7612009-08-04 02:32:55 +0000112 --show-emwarns=no|yes show warnings about emulation limits? [no]
sewardjf9ebc392010-05-09 22:30:43 +0000113 --require-text-symbol=:sonamepattern:symbolpattern abort run if the
114 stated shared object doesn't have the stated
115 text symbol. Patterns can contain ? and *.
philippe1e470b52012-05-11 19:33:46 +0000116 --soname-synonyms=syn1=pattern1,syn2=pattern2,... synonym soname
sewardj260c6482012-08-07 14:46:34 +0000117 specify patterns for function wrapping or replacement.
118 To use a non-libc malloc library that is
119 in the main exe: --soname-synonyms=somalloc=NONE
120 in libxyzzy.so: --soname-synonyms=somalloc=libxyzzy.so
sewardjc30cd9b2012-12-06 18:08:54 +0000121 --sigill-diagnostics=yes|no warn about illegal instructions? [yes]
sewardj49984ea2013-10-18 13:21:26 +0000122 --unw-stack-scan-thresh=<number> Enable stack-scan unwind if fewer
123 than <number> good frames found [0, meaning "disabled"]
124 NOTE: stack scanning is only available on arm-linux.
125 --unw-stack-scan-frames=<number> Max number of frames that can be
126 recovered by stack scanning [5]
sewardj2f870902014-10-23 21:49:58 +0000127 --resync-filter=no|yes|verbose [yes on MacOS, no on other OSes]
128 attempt to avoid expensive address-space-resync operations
florian1e802b62015-02-13 19:08:26 +0000129 --max-threads=<number> maximum number of threads that valgrind can
130 handle [500]
njn97db7612009-08-04 02:32:55 +0000131
njn7eea51f2004-11-26 12:54:07 +0000132 user options for Nulgrind:
133 (none)
nethercotef4928da2004-06-15 10:54:40 +0000134
135 debugging options for all Valgrind tools:
njn97db7612009-08-04 02:32:55 +0000136 -d show verbose debugging output
njnb1cc5d62010-07-06 04:05:23 +0000137 --stats=no|yes show tool and core statistics [no]
nethercotef4928da2004-06-15 10:54:40 +0000138 --sanity-level=<number> level of sanity checking to do [1]
sewardjfa8ec112005-01-19 11:55:34 +0000139 --trace-flags=<XXXXXXXX> show generated code? (X = 0|1) [00000000]
140 --profile-flags=<XXXXXXXX> ditto, but for profiling (X = 0|1) [00000000]
sewardj17c5e2e2012-12-28 09:12:14 +0000141 --profile-interval=<number> show profile every <number> event checks
142 [0, meaning only at the end of the run]
sewardj33afdb52006-01-17 02:36:40 +0000143 --trace-notbelow=<number> only show BBs above <number> [999999999]
florian9aa15b72012-07-03 13:58:59 +0000144 --trace-notabove=<number> only show BBs below <number> [0]
nethercotef4928da2004-06-15 10:54:40 +0000145 --trace-syscalls=no|yes show all system calls? [no]
146 --trace-signals=no|yes show signal handling details? [no]
147 --trace-symtab=no|yes show symbol table details? [no]
sewardj8af928c2007-02-13 10:24:32 +0000148 --trace-symtab-patt=<patt> limit debuginfo tracing to obj name <patt>
sewardj1dd628a2005-05-03 16:44:31 +0000149 --trace-cfi=no|yes show call-frame-info details? [no]
sewardj8af928c2007-02-13 10:24:32 +0000150 --debug-dump=syms mimic /usr/bin/readelf --syms
151 --debug-dump=line mimic /usr/bin/readelf --debug-dump=line
152 --debug-dump=frames mimic /usr/bin/readelf --debug-dump=frames
sewardj0ec07f32006-01-12 12:32:32 +0000153 --trace-redir=no|yes show redirection details? [no]
nethercotef4928da2004-06-15 10:54:40 +0000154 --trace-sched=no|yes show thread scheduler details? [no]
sewardj6f089c72008-11-08 15:05:49 +0000155 --profile-heap=no|yes profile Valgrind's own space use
philippe06444372012-10-12 21:46:55 +0000156 --core-redzone-size=<number> set minimum size of redzones added before/after
philipped99c26a2012-07-31 22:17:28 +0000157 heap blocks allocated for Valgrind internal use (in bytes) [4]
nethercotef4928da2004-06-15 10:54:40 +0000158 --wait-for-gdb=yes|no pause on startup to wait for gdb attach
sewardj3477e8c2006-10-17 11:08:12 +0000159 --sym-offsets=yes|no show syms in form 'name+offset' ? [no]
sewardjb5f6f512005-03-10 23:59:00 +0000160 --command-line-only=no|yes only use command line options [no]
njn613812e2005-03-11 04:57:30 +0000161
njn97db7612009-08-04 02:32:55 +0000162 Vex options for all Valgrind tools:
163 --vex-iropt-verbosity=<0..9> [0]
164 --vex-iropt-level=<0..2> [2]
njn97db7612009-08-04 02:32:55 +0000165 --vex-iropt-unroll-thresh=<0..400> [120]
166 --vex-guest-max-insns=<1..100> [50]
167 --vex-guest-chase-thresh=<0..99> [10]
sewardj540cc4a2010-01-15 10:57:57 +0000168 --vex-guest-chase-cond=no|yes [no]
sewardj8d47a612015-02-05 12:59:46 +0000169 Precise exception control. Possible values for 'mode' are as follows
170 and specify the minimum set of registers guaranteed to be correct
171 immediately prior to memory access instructions:
172 sp-at-mem-access stack pointer only
173 unwindregs-at-mem-access registers needed for stack unwinding
174 allregs-at-mem-access all registers
175 allregs-at-each-insn all registers are always correct
176 Default value for all 3 following flags is [unwindregs-at-mem-access].
177 --vex-iropt-register-updates=mode setting to use by default
178 --px-default=mode synonym for --vex-iropt-register-updates
179 --px-file-backed=mode optional setting for file-backed (non-JIT) code
180 Tracing and profile control:
181 --trace-flags and --profile-flags values (omit the middle space):
182 1000 0000 show conversion into IR
183 0100 0000 show after initial opt
184 0010 0000 show after instrumentation
185 0001 0000 show after second opt
186 0000 1000 show after tree building
187 0000 0100 show selecting insns
188 0000 0010 show after reg-alloc
189 0000 0001 show final assembly
190 0000 0000 show summary profile only
191 (Nb: you need --trace-notbelow and/or --trace-notabove
192 with --trace-flags for full details)
sewardj0dbb7de2004-11-26 12:37:10 +0000193
nethercotef4928da2004-06-15 10:54:40 +0000194 debugging options for Valgrind tools that report errors
195 --dump-error=<number> show translation for basic block associated
196 with <number>'th error context [0=show none]
197
njn97db7612009-08-04 02:32:55 +0000198 debugging options for Valgrind tools that replace malloc:
199 --trace-malloc=no|yes show client malloc details? [no]
200
njn7eea51f2004-11-26 12:54:07 +0000201 debugging options for Nulgrind:
202 (none)
nethercotef4928da2004-06-15 10:54:40 +0000203
204 Extra options read from ~/.valgrindrc, $VALGRIND_OPTS, ./.valgrindrc
205
sewardj03d49dd2015-08-21 13:38:02 +0000206 Nulgrind is Copyright (C) 2002-2015, and GNU GPL'd, by Nicholas Nethercote.
207 Valgrind is Copyright (C) 2000-2015, and GNU GPL'd, by Julian Seward et al.
208 LibVEX is Copyright (C) 2004-2015, and GNU GPL'd, by OpenWorks LLP et al.
nethercotef4928da2004-06-15 10:54:40 +0000209
njn10b9aea2009-07-14 06:55:05 +0000210 Bug reports, feedback, admiration, abuse, etc, to: www.valgrind.org.
nethercotef4928da2004-06-15 10:54:40 +0000211