njn | 00cfcfc | 2005-11-12 18:53:50 +0000 | [diff] [blame] | 1 | usage: valgrind [options] prog-and-args |
nethercote | f4928da | 2004-06-15 10:54:40 +0000 | [diff] [blame] | 2 | |
njn | 97db761 | 2009-08-04 02:32:55 +0000 | [diff] [blame] | 3 | tool-selection option, with default in [ ]: |
sewardj | b5f6f51 | 2005-03-10 23:59:00 +0000 | [diff] [blame] | 4 | --tool=<name> use the Valgrind tool named <name> [memcheck] |
njn | 97db761 | 2009-08-04 02:32:55 +0000 | [diff] [blame] | 5 | |
| 6 | basic user options for all Valgrind tools, with defaults in [ ]: |
nethercote | a76368b | 2004-06-16 11:56:29 +0000 | [diff] [blame] | 7 | -h --help show this message |
nethercote | f4928da | 2004-06-15 10:54:40 +0000 | [diff] [blame] | 8 | --help-debug show this message, plus debugging options |
| 9 | --version show version |
| 10 | -q --quiet run silently; only print error msgs |
sewardj | 2d9e874 | 2009-08-07 15:46:56 +0000 | [diff] [blame] | 11 | -v --verbose be more verbose -- show misc extra info |
njn | 374a36d | 2007-11-23 01:41:32 +0000 | [diff] [blame] | 12 | --trace-children=no|yes Valgrind-ise child processes (follow execve)? [no] |
sewardj | 0642127 | 2009-11-05 08:55:13 +0000 | [diff] [blame] | 13 | --trace-children-skip=patt1,patt2,... specifies a list of executables |
| 14 | that --trace-children=yes should not trace into |
sewardj | 9ab64a4 | 2010-12-06 11:40:04 +0000 | [diff] [blame] | 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 |
njn | 97db761 | 2009-08-04 02:32:55 +0000 | [diff] [blame] | 18 | --child-silent-after-fork=no|yes omit child output between fork & exec? [no] |
sewardj | 3b29048 | 2011-05-06 21:02:55 +0000 | [diff] [blame] | 19 | --vgdb=no|yes|full activate gdbserver? [yes] |
| 20 | full is slower but provides precise watchpoint/step |
sewardj | 1568e17 | 2011-06-18 08:28:04 +0000 | [diff] [blame] | 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 |
philippe | 180a750 | 2014-04-20 13:41:10 +0000 | [diff] [blame] | 24 | --vgdb-stop-at=event1,event2,... invoke gdbserver for given events [none] |
sewardj | 122f6af | 2014-09-03 21:58:54 +0000 | [diff] [blame] | 25 | where event is one of: |
| 26 | startup exit valgrindabexit all none |
nethercote | 0d58850 | 2004-06-21 13:27:11 +0000 | [diff] [blame] | 27 | --track-fds=no|yes track open file descriptors? [no] |
thughes | 6233a38 | 2004-08-21 11:10:44 +0000 | [diff] [blame] | 28 | --time-stamp=no|yes add timestamps to log messages? [no] |
njn | ce54555 | 2005-07-25 22:36:52 +0000 | [diff] [blame] | 29 | --log-fd=<number> log messages to file descriptor [2=stderr] |
njn | 374a36d | 2007-11-23 01:41:32 +0000 | [diff] [blame] | 30 | --log-file=<file> log messages to <file> |
njn | ce54555 | 2005-07-25 22:36:52 +0000 | [diff] [blame] | 31 | --log-socket=ipaddr:port log messages to socket ipaddr:port |
nethercote | f4928da | 2004-06-15 10:54:40 +0000 | [diff] [blame] | 32 | |
nethercote | f4928da | 2004-06-15 10:54:40 +0000 | [diff] [blame] | 33 | user options for Valgrind tools that report errors: |
sewardj | 8fd8758 | 2009-07-15 14:52:02 +0000 | [diff] [blame] | 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 |
nethercote | f4928da | 2004-06-15 10:54:40 +0000 | [diff] [blame] | 39 | --demangle=no|yes automatically demangle C++ names? [yes] |
njn | 20b4a15 | 2005-10-19 22:39:40 +0000 | [diff] [blame] | 40 | --num-callers=<number> show <number> callers in stack traces [12] |
nethercote | f4928da | 2004-06-15 10:54:40 +0000 | [diff] [blame] | 41 | --error-limit=no|yes stop showing new errors if too many? [yes] |
sewardj | 365985f | 2006-05-13 01:54:15 +0000 | [diff] [blame] | 42 | --error-exitcode=<number> exit code to return if errors found [0=disable] |
philippe | 7b3d356 | 2014-11-12 19:43:29 +0000 | [diff] [blame] | 43 | --error-markers=<begin>,<end> add lines with begin/end markers before/after |
| 44 | each error output in plain text mode [none] |
nethercote | f4928da | 2004-06-15 10:54:40 +0000 | [diff] [blame] | 45 | --show-below-main=no|yes continue stack traces below main() [no] |
bart | a6efdfa | 2014-06-24 05:08:21 +0000 | [diff] [blame] | 46 | --default-suppressions=yes|no |
| 47 | load default suppressions [yes] |
nethercote | f4928da | 2004-06-15 10:54:40 +0000 | [diff] [blame] | 48 | --suppressions=<filename> suppress errors described in <filename> |
sewardj | 09272c7 | 2005-01-11 14:21:02 +0000 | [diff] [blame] | 49 | --gen-suppressions=no|yes|all print suppressions for errors? [no] |
nethercote | f4928da | 2004-06-15 10:54:40 +0000 | [diff] [blame] | 50 | --input-fd=<number> file descriptor for input [0=stdin] |
sewardj | 29dd9e6 | 2015-08-31 14:37:25 +0000 | [diff] [blame] | 51 | --dsymutil=no|yes run dsymutil on Mac OS X when helpful? [yes] |
sewardj | 412ad6e | 2005-04-03 00:16:11 +0000 | [diff] [blame] | 52 | --max-stackframe=<number> assume stack switch for SP changes larger |
| 53 | than <number> bytes [2000000] |
sewardj | 95d86c0 | 2007-12-18 01:49:23 +0000 | [diff] [blame] | 54 | --main-stacksize=<number> set size of main thread's stack (in bytes) |
philippe | 3bcd51d | 2013-06-12 21:45:39 +0000 | [diff] [blame] | 55 | [min(max(current 'ulimit' value,1MB),16MB)] |
nethercote | f4928da | 2004-06-15 10:54:40 +0000 | [diff] [blame] | 56 | |
njn | 97db761 | 2009-08-04 02:32:55 +0000 | [diff] [blame] | 57 | user options for Valgrind tools that replace malloc: |
philippe | d99c26a | 2012-07-31 22:17:28 +0000 | [diff] [blame] | 58 | --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 Hughes | ed39800 | 2017-06-21 14:41:24 -0700 | [diff] [blame] | 61 | --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] |
njn | 97db761 | 2009-08-04 02:32:55 +0000 | [diff] [blame] | 67 | |
| 68 | uncommon user options for all Valgrind tools: |
sewardj | 14cdbf8 | 2010-10-12 00:44:05 +0000 | [diff] [blame] | 69 | --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. |
sewardj | 8b6573d | 2012-12-05 22:15:14 +0000 | [diff] [blame] | 75 | --extra-debuginfo-path=path absolute path to search for additional |
| 76 | debug symbols, in addition to existing default |
| 77 | well known search paths. |
sewardj | e5b6cc4 | 2013-07-02 20:47:24 +0000 | [diff] [blame] | 78 | --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 |
sewardj | 6d9a338 | 2015-08-31 13:05:35 +0000 | [diff] [blame] | 83 | --smc-check=none|stack|all|all-non-file [all-non-file] |
sewardj | 6dbcc63 | 2011-06-07 21:39:28 +0000 | [diff] [blame] | 84 | 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 |
philippe | a0a7393 | 2014-06-15 15:42:20 +0000 | [diff] [blame] | 87 | --read-inline-info=yes|no read debug info about inlined function calls |
sewardj | 47c6d14 | 2014-09-12 09:22:36 +0000 | [diff] [blame] | 88 | and use it to do better stack traces. [yes] |
iraisr | 4e1d946 | 2015-09-01 11:51:16 +0000 | [diff] [blame] | 89 | on Linux/Android/Solaris for Memcheck/Helgrind/DRD |
sewardj | 47c6d14 | 2014-09-12 09:22:36 +0000 | [diff] [blame] | 90 | only. [no] for all other tools and platforms. |
njn | 97db761 | 2009-08-04 02:32:55 +0000 | [diff] [blame] | 91 | --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, |
bart | f6122a0 | 2010-03-27 07:38:39 +0000 | [diff] [blame] | 94 | DRD) [no] |
sewardj | 3b29048 | 2011-05-06 21:02:55 +0000 | [diff] [blame] | 95 | --vgdb-poll=<number> gdbserver poll max every <number> basic blocks [5000] |
| 96 | --vgdb-shadow-registers=no|yes let gdb see the shadow registers [no] |
florian | 5d00ec6 | 2014-10-20 20:59:13 +0000 | [diff] [blame] | 97 | --vgdb-prefix=<prefix> prefix for vgdb FIFOs [.../vgdb-pipe] |
njn | 97db761 | 2009-08-04 02:32:55 +0000 | [diff] [blame] | 98 | --run-libc-freeres=no|yes free up glibc memory at exit on Linux? [yes] |
Elliott Hughes | a0664b9 | 2017-04-18 17:46:52 -0700 | [diff] [blame] | 99 | --run-cxx-freeres=no|yes free up libstdc++ memory at exit on Linux |
| 100 | and Solaris? [yes] |
philippe | ec905f7 | 2014-08-17 20:03:51 +0000 | [diff] [blame] | 101 | --sim-hints=hint1,hint2,... activate unusual sim behaviours [none] |
sewardj | 122f6af | 2014-09-03 21:58:54 +0000 | [diff] [blame] | 102 | where hint is one of: |
sewardj | 8eb8bab | 2015-07-21 14:44:28 +0000 | [diff] [blame] | 103 | lax-ioctls lax-doors fuse-compatible enable-outer |
Elliott Hughes | ed39800 | 2017-06-21 14:41:24 -0700 | [diff] [blame] | 104 | no-inner-prefix no-nptl-pthread-stackcache fallback-llsc none |
bart | 78bfc71 | 2011-12-08 16:14:59 +0000 | [diff] [blame] | 105 | --fair-sched=no|yes|try schedule threads fairly on multicore systems [no] |
sewardj | 4450a0e | 2014-09-03 15:19:25 +0000 | [diff] [blame] | 106 | --kernel-variant=variant1,variant2,... |
| 107 | handle non-standard kernel variants [none] |
| 108 | where variant is one of: |
sewardj | 124e56d | 2014-09-06 14:45:12 +0000 | [diff] [blame] | 109 | bproc android-no-hw-tls |
sewardj | 4450a0e | 2014-09-03 15:19:25 +0000 | [diff] [blame] | 110 | android-gpu-sgx5xx android-gpu-adreno3xx none |
philippe | 4620765 | 2013-01-20 17:11:58 +0000 | [diff] [blame] | 111 | --merge-recursive-frames=<number> merge frames between identical |
| 112 | program counters in max <number> frames) [0] |
Elliott Hughes | ed39800 | 2017-06-21 14:41:24 -0700 | [diff] [blame] | 113 | --num-transtab-sectors=<number> size of translated code cache [32] |
sewardj | a11ec17 | 2013-10-18 11:18:45 +0000 | [diff] [blame] | 114 | more sectors may increase performance, but use more memory. |
philippe | 924c852 | 2015-03-15 12:24:19 +0000 | [diff] [blame] | 115 | --avg-transtab-entry-size=<number> avg size in bytes of a translated |
| 116 | basic block [0, meaning use tool provided default] |
philippe | e4d7812 | 2014-04-20 14:20:37 +0000 | [diff] [blame] | 117 | --aspace-minaddr=0xPP avoid mapping memory below 0xPP [guessed] |
philippe | d0720e4 | 2015-03-12 20:43:46 +0000 | [diff] [blame] | 118 | --valgrind-stacksize=<number> size of valgrind (host) thread's stack |
| 119 | (in bytes) [1048576] |
njn | 97db761 | 2009-08-04 02:32:55 +0000 | [diff] [blame] | 120 | --show-emwarns=no|yes show warnings about emulation limits? [no] |
sewardj | f9ebc39 | 2010-05-09 22:30:43 +0000 | [diff] [blame] | 121 | --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 *. |
philippe | 1e470b5 | 2012-05-11 19:33:46 +0000 | [diff] [blame] | 124 | --soname-synonyms=syn1=pattern1,syn2=pattern2,... synonym soname |
sewardj | 260c648 | 2012-08-07 14:46:34 +0000 | [diff] [blame] | 125 | 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 |
sewardj | c30cd9b | 2012-12-06 18:08:54 +0000 | [diff] [blame] | 129 | --sigill-diagnostics=yes|no warn about illegal instructions? [yes] |
sewardj | 49984ea | 2013-10-18 13:21:26 +0000 | [diff] [blame] | 130 | --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] |
sewardj | 2f87090 | 2014-10-23 21:49:58 +0000 | [diff] [blame] | 135 | --resync-filter=no|yes|verbose [yes on MacOS, no on other OSes] |
| 136 | attempt to avoid expensive address-space-resync operations |
florian | 1e802b6 | 2015-02-13 19:08:26 +0000 | [diff] [blame] | 137 | --max-threads=<number> maximum number of threads that valgrind can |
| 138 | handle [500] |
njn | 97db761 | 2009-08-04 02:32:55 +0000 | [diff] [blame] | 139 | |
nethercote | f4928da | 2004-06-15 10:54:40 +0000 | [diff] [blame] | 140 | user options for Nulgrind: |
| 141 | (none) |
| 142 | |
| 143 | Extra options read from ~/.valgrindrc, $VALGRIND_OPTS, ./.valgrindrc |
| 144 | |
Elliott Hughes | ed39800 | 2017-06-21 14:41:24 -0700 | [diff] [blame] | 145 | 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. |
nethercote | f4928da | 2004-06-15 10:54:40 +0000 | [diff] [blame] | 148 | |
njn | 10b9aea | 2009-07-14 06:55:05 +0000 | [diff] [blame] | 149 | Bug reports, feedback, admiration, abuse, etc, to: www.valgrind.org. |
nethercote | f4928da | 2004-06-15 10:54:40 +0000 | [diff] [blame] | 150 | |