blob: e35b38274de6c31c7a36f5481b8c5d4d4262e0d0 [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]
Elliott Hughesed398002017-06-21 14:41:24 -070061 --xtree-memory=none|allocs|full profile heap memory in an xtree [none]
62 and produces a report at the end of the execution
63 none: no profiling, allocs: current allocated
64 size/blocks, full: profile current and cumulative
65 allocated size/blocks and freed size/blocks.
66 --xtree-memory-file=<file> xtree memory report file [xtmemory.kcg.%p]
njn97db7612009-08-04 02:32:55 +000067
68 uncommon user options for all Valgrind tools:
sewardj14cdbf82010-10-12 00:44:05 +000069 --fullpath-after= (with nothing after the '=')
70 show full source paths in call stacks
71 --fullpath-after=string like --fullpath-after=, but only show the
72 part of the path after 'string'. Allows removal
73 of path prefixes. Use this flag multiple times
74 to specify a set of prefixes to remove.
sewardj8b6573d2012-12-05 22:15:14 +000075 --extra-debuginfo-path=path absolute path to search for additional
76 debug symbols, in addition to existing default
77 well known search paths.
sewardje5b6cc42013-07-02 20:47:24 +000078 --debuginfo-server=ipaddr:port also query this server
79 (valgrind-di-server) for debug symbols
80 --allow-mismatched-debuginfo=no|yes [no]
81 for the above two flags only, accept debuginfo
82 objects that don't "match" the main object
sewardj6d9a3382015-08-31 13:05:35 +000083 --smc-check=none|stack|all|all-non-file [all-non-file]
sewardj6dbcc632011-06-07 21:39:28 +000084 checks for self-modifying code: none, only for
85 code found in stacks, for all code, or for all
86 code except that from file-backed mappings
philippea0a73932014-06-15 15:42:20 +000087 --read-inline-info=yes|no read debug info about inlined function calls
sewardj47c6d142014-09-12 09:22:36 +000088 and use it to do better stack traces. [yes]
iraisr4e1d9462015-09-01 11:51:16 +000089 on Linux/Android/Solaris for Memcheck/Helgrind/DRD
sewardj47c6d142014-09-12 09:22:36 +000090 only. [no] for all other tools and platforms.
njn97db7612009-08-04 02:32:55 +000091 --read-var-info=yes|no read debug info on stack and global variables
92 and use it to print better error messages in
93 tools that make use of it (Memcheck, Helgrind,
bartf6122a02010-03-27 07:38:39 +000094 DRD) [no]
sewardj3b290482011-05-06 21:02:55 +000095 --vgdb-poll=<number> gdbserver poll max every <number> basic blocks [5000]
96 --vgdb-shadow-registers=no|yes let gdb see the shadow registers [no]
florian5d00ec62014-10-20 20:59:13 +000097 --vgdb-prefix=<prefix> prefix for vgdb FIFOs [.../vgdb-pipe]
njn97db7612009-08-04 02:32:55 +000098 --run-libc-freeres=no|yes free up glibc memory at exit on Linux? [yes]
Elliott Hughesa0664b92017-04-18 17:46:52 -070099 --run-cxx-freeres=no|yes free up libstdc++ memory at exit on Linux
100 and Solaris? [yes]
philippeec905f72014-08-17 20:03:51 +0000101 --sim-hints=hint1,hint2,... activate unusual sim behaviours [none]
sewardj122f6af2014-09-03 21:58:54 +0000102 where hint is one of:
sewardj8eb8bab2015-07-21 14:44:28 +0000103 lax-ioctls lax-doors fuse-compatible enable-outer
Elliott Hughesed398002017-06-21 14:41:24 -0700104 no-inner-prefix no-nptl-pthread-stackcache fallback-llsc none
bart78bfc712011-12-08 16:14:59 +0000105 --fair-sched=no|yes|try schedule threads fairly on multicore systems [no]
sewardj4450a0e2014-09-03 15:19:25 +0000106 --kernel-variant=variant1,variant2,...
107 handle non-standard kernel variants [none]
108 where variant is one of:
sewardj124e56d2014-09-06 14:45:12 +0000109 bproc android-no-hw-tls
sewardj4450a0e2014-09-03 15:19:25 +0000110 android-gpu-sgx5xx android-gpu-adreno3xx none
philippe46207652013-01-20 17:11:58 +0000111 --merge-recursive-frames=<number> merge frames between identical
112 program counters in max <number> frames) [0]
Elliott Hughesed398002017-06-21 14:41:24 -0700113 --num-transtab-sectors=<number> size of translated code cache [32]
sewardja11ec172013-10-18 11:18:45 +0000114 more sectors may increase performance, but use more memory.
philippe924c8522015-03-15 12:24:19 +0000115 --avg-transtab-entry-size=<number> avg size in bytes of a translated
116 basic block [0, meaning use tool provided default]
philippee4d78122014-04-20 14:20:37 +0000117 --aspace-minaddr=0xPP avoid mapping memory below 0xPP [guessed]
philipped0720e42015-03-12 20:43:46 +0000118 --valgrind-stacksize=<number> size of valgrind (host) thread's stack
119 (in bytes) [1048576]
njn97db7612009-08-04 02:32:55 +0000120 --show-emwarns=no|yes show warnings about emulation limits? [no]
sewardjf9ebc392010-05-09 22:30:43 +0000121 --require-text-symbol=:sonamepattern:symbolpattern abort run if the
122 stated shared object doesn't have the stated
123 text symbol. Patterns can contain ? and *.
philippe1e470b52012-05-11 19:33:46 +0000124 --soname-synonyms=syn1=pattern1,syn2=pattern2,... synonym soname
sewardj260c6482012-08-07 14:46:34 +0000125 specify patterns for function wrapping or replacement.
126 To use a non-libc malloc library that is
127 in the main exe: --soname-synonyms=somalloc=NONE
128 in libxyzzy.so: --soname-synonyms=somalloc=libxyzzy.so
sewardjc30cd9b2012-12-06 18:08:54 +0000129 --sigill-diagnostics=yes|no warn about illegal instructions? [yes]
sewardj49984ea2013-10-18 13:21:26 +0000130 --unw-stack-scan-thresh=<number> Enable stack-scan unwind if fewer
131 than <number> good frames found [0, meaning "disabled"]
132 NOTE: stack scanning is only available on arm-linux.
133 --unw-stack-scan-frames=<number> Max number of frames that can be
134 recovered by stack scanning [5]
sewardj2f870902014-10-23 21:49:58 +0000135 --resync-filter=no|yes|verbose [yes on MacOS, no on other OSes]
136 attempt to avoid expensive address-space-resync operations
florian1e802b62015-02-13 19:08:26 +0000137 --max-threads=<number> maximum number of threads that valgrind can
138 handle [500]
njn97db7612009-08-04 02:32:55 +0000139
nethercotef4928da2004-06-15 10:54:40 +0000140 user options for Nulgrind:
141 (none)
142
143 Extra options read from ~/.valgrindrc, $VALGRIND_OPTS, ./.valgrindrc
144
Elliott Hughesed398002017-06-21 14:41:24 -0700145 Nulgrind is Copyright (C) 2002-2017, and GNU GPL'd, by Nicholas Nethercote.
146 Valgrind is Copyright (C) 2000-2017, and GNU GPL'd, by Julian Seward et al.
147 LibVEX is Copyright (C) 2004-2017, and GNU GPL'd, by OpenWorks LLP et al.
nethercotef4928da2004-06-15 10:54:40 +0000148
njn10b9aea2009-07-14 06:55:05 +0000149 Bug reports, feedback, admiration, abuse, etc, to: www.valgrind.org.
nethercotef4928da2004-06-15 10:54:40 +0000150