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] |
| 25 | where event is one of startup exit valgrindabexit all none |
nethercote | 0d58850 | 2004-06-21 13:27:11 +0000 | [diff] [blame] | 26 | --track-fds=no|yes track open file descriptors? [no] |
thughes | 6233a38 | 2004-08-21 11:10:44 +0000 | [diff] [blame] | 27 | --time-stamp=no|yes add timestamps to log messages? [no] |
njn | ce54555 | 2005-07-25 22:36:52 +0000 | [diff] [blame] | 28 | --log-fd=<number> log messages to file descriptor [2=stderr] |
njn | 374a36d | 2007-11-23 01:41:32 +0000 | [diff] [blame] | 29 | --log-file=<file> log messages to <file> |
njn | ce54555 | 2005-07-25 22:36:52 +0000 | [diff] [blame] | 30 | --log-socket=ipaddr:port log messages to socket ipaddr:port |
nethercote | f4928da | 2004-06-15 10:54:40 +0000 | [diff] [blame] | 31 | |
nethercote | f4928da | 2004-06-15 10:54:40 +0000 | [diff] [blame] | 32 | user options for Valgrind tools that report errors: |
sewardj | 8fd8758 | 2009-07-15 14:52:02 +0000 | [diff] [blame] | 33 | --xml=yes emit error output in XML (some tools only) |
| 34 | --xml-fd=<number> XML output to file descriptor |
| 35 | --xml-file=<file> XML output to <file> |
| 36 | --xml-socket=ipaddr:port XML output to socket ipaddr:port |
| 37 | --xml-user-comment=STR copy STR verbatim into XML output |
nethercote | f4928da | 2004-06-15 10:54:40 +0000 | [diff] [blame] | 38 | --demangle=no|yes automatically demangle C++ names? [yes] |
njn | 20b4a15 | 2005-10-19 22:39:40 +0000 | [diff] [blame] | 39 | --num-callers=<number> show <number> callers in stack traces [12] |
nethercote | f4928da | 2004-06-15 10:54:40 +0000 | [diff] [blame] | 40 | --error-limit=no|yes stop showing new errors if too many? [yes] |
sewardj | 365985f | 2006-05-13 01:54:15 +0000 | [diff] [blame] | 41 | --error-exitcode=<number> exit code to return if errors found [0=disable] |
nethercote | f4928da | 2004-06-15 10:54:40 +0000 | [diff] [blame] | 42 | --show-below-main=no|yes continue stack traces below main() [no] |
| 43 | --suppressions=<filename> suppress errors described in <filename> |
sewardj | 09272c7 | 2005-01-11 14:21:02 +0000 | [diff] [blame] | 44 | --gen-suppressions=no|yes|all print suppressions for errors? [no] |
nethercote | f4928da | 2004-06-15 10:54:40 +0000 | [diff] [blame] | 45 | --db-attach=no|yes start debugger when errors detected? [no] |
bart | 0f212dc | 2009-08-20 18:38:59 +0000 | [diff] [blame] | 46 | --db-command=<command> command to start debugger [... -nw %f %p] |
nethercote | f4928da | 2004-06-15 10:54:40 +0000 | [diff] [blame] | 47 | --input-fd=<number> file descriptor for input [0=stdin] |
njn | 97db761 | 2009-08-04 02:32:55 +0000 | [diff] [blame] | 48 | --dsymutil=no|yes run dsymutil on Mac OS X when helpful? [no] |
sewardj | 412ad6e | 2005-04-03 00:16:11 +0000 | [diff] [blame] | 49 | --max-stackframe=<number> assume stack switch for SP changes larger |
| 50 | than <number> bytes [2000000] |
sewardj | 95d86c0 | 2007-12-18 01:49:23 +0000 | [diff] [blame] | 51 | --main-stacksize=<number> set size of main thread's stack (in bytes) |
philippe | 3bcd51d | 2013-06-12 21:45:39 +0000 | [diff] [blame] | 52 | [min(max(current 'ulimit' value,1MB),16MB)] |
nethercote | f4928da | 2004-06-15 10:54:40 +0000 | [diff] [blame] | 53 | |
njn | 97db761 | 2009-08-04 02:32:55 +0000 | [diff] [blame] | 54 | user options for Valgrind tools that replace malloc: |
philippe | d99c26a | 2012-07-31 22:17:28 +0000 | [diff] [blame] | 55 | --alignment=<number> set minimum alignment of heap allocations [not used by this tool] |
| 56 | --redzone-size=<number> set minimum size of redzones added before/after |
| 57 | heap blocks (in bytes). [not used by this tool] |
njn | 97db761 | 2009-08-04 02:32:55 +0000 | [diff] [blame] | 58 | |
| 59 | uncommon user options for all Valgrind tools: |
sewardj | 14cdbf8 | 2010-10-12 00:44:05 +0000 | [diff] [blame] | 60 | --fullpath-after= (with nothing after the '=') |
| 61 | show full source paths in call stacks |
| 62 | --fullpath-after=string like --fullpath-after=, but only show the |
| 63 | part of the path after 'string'. Allows removal |
| 64 | of path prefixes. Use this flag multiple times |
| 65 | to specify a set of prefixes to remove. |
sewardj | 8b6573d | 2012-12-05 22:15:14 +0000 | [diff] [blame] | 66 | --extra-debuginfo-path=path absolute path to search for additional |
| 67 | debug symbols, in addition to existing default |
| 68 | well known search paths. |
sewardj | e5b6cc4 | 2013-07-02 20:47:24 +0000 | [diff] [blame] | 69 | --debuginfo-server=ipaddr:port also query this server |
| 70 | (valgrind-di-server) for debug symbols |
| 71 | --allow-mismatched-debuginfo=no|yes [no] |
| 72 | for the above two flags only, accept debuginfo |
| 73 | objects that don't "match" the main object |
sewardj | 6dbcc63 | 2011-06-07 21:39:28 +0000 | [diff] [blame] | 74 | --smc-check=none|stack|all|all-non-file [stack] |
| 75 | checks for self-modifying code: none, only for |
| 76 | code found in stacks, for all code, or for all |
| 77 | code except that from file-backed mappings |
njn | 97db761 | 2009-08-04 02:32:55 +0000 | [diff] [blame] | 78 | --read-var-info=yes|no read debug info on stack and global variables |
| 79 | and use it to print better error messages in |
| 80 | tools that make use of it (Memcheck, Helgrind, |
bart | f6122a0 | 2010-03-27 07:38:39 +0000 | [diff] [blame] | 81 | DRD) [no] |
sewardj | 3b29048 | 2011-05-06 21:02:55 +0000 | [diff] [blame] | 82 | --vgdb-poll=<number> gdbserver poll max every <number> basic blocks [5000] |
| 83 | --vgdb-shadow-registers=no|yes let gdb see the shadow registers [no] |
| 84 | --vgdb-prefix=<prefix> prefix for vgdb FIFOs [/tmp/vgdb-pipe] |
njn | 97db761 | 2009-08-04 02:32:55 +0000 | [diff] [blame] | 85 | --run-libc-freeres=no|yes free up glibc memory at exit on Linux? [yes] |
| 86 | --sim-hints=hint1,hint2,... known hints: |
sewardj | cc3de2d | 2011-08-18 15:08:20 +0000 | [diff] [blame] | 87 | lax-ioctls, enable-outer, fuse-compatible [none] |
bart | 78bfc71 | 2011-12-08 16:14:59 +0000 | [diff] [blame] | 88 | --fair-sched=no|yes|try schedule threads fairly on multicore systems [no] |
njn | 97db761 | 2009-08-04 02:32:55 +0000 | [diff] [blame] | 89 | --kernel-variant=variant1,variant2,... known variants: bproc [none] |
| 90 | handle non-standard kernel variants |
philippe | 4620765 | 2013-01-20 17:11:58 +0000 | [diff] [blame] | 91 | --merge-recursive-frames=<number> merge frames between identical |
| 92 | program counters in max <number> frames) [0] |
philippe | 8e1bee4 | 2013-10-18 00:08:20 +0000 | [diff] [blame] | 93 | --num-transtab-sectors=<number> size of translated code cache [16] |
sewardj | a11ec17 | 2013-10-18 11:18:45 +0000 | [diff] [blame] | 94 | more sectors may increase performance, but use more memory. |
philippe | e4d7812 | 2014-04-20 14:20:37 +0000 | [diff] [blame^] | 95 | --aspace-minaddr=0xPP avoid mapping memory below 0xPP [guessed] |
njn | 97db761 | 2009-08-04 02:32:55 +0000 | [diff] [blame] | 96 | --show-emwarns=no|yes show warnings about emulation limits? [no] |
sewardj | f9ebc39 | 2010-05-09 22:30:43 +0000 | [diff] [blame] | 97 | --require-text-symbol=:sonamepattern:symbolpattern abort run if the |
| 98 | stated shared object doesn't have the stated |
| 99 | text symbol. Patterns can contain ? and *. |
philippe | 1e470b5 | 2012-05-11 19:33:46 +0000 | [diff] [blame] | 100 | --soname-synonyms=syn1=pattern1,syn2=pattern2,... synonym soname |
sewardj | 260c648 | 2012-08-07 14:46:34 +0000 | [diff] [blame] | 101 | specify patterns for function wrapping or replacement. |
| 102 | To use a non-libc malloc library that is |
| 103 | in the main exe: --soname-synonyms=somalloc=NONE |
| 104 | in libxyzzy.so: --soname-synonyms=somalloc=libxyzzy.so |
sewardj | c30cd9b | 2012-12-06 18:08:54 +0000 | [diff] [blame] | 105 | --sigill-diagnostics=yes|no warn about illegal instructions? [yes] |
sewardj | 49984ea | 2013-10-18 13:21:26 +0000 | [diff] [blame] | 106 | --unw-stack-scan-thresh=<number> Enable stack-scan unwind if fewer |
| 107 | than <number> good frames found [0, meaning "disabled"] |
| 108 | NOTE: stack scanning is only available on arm-linux. |
| 109 | --unw-stack-scan-frames=<number> Max number of frames that can be |
| 110 | recovered by stack scanning [5] |
njn | 97db761 | 2009-08-04 02:32:55 +0000 | [diff] [blame] | 111 | |
njn | 7eea51f | 2004-11-26 12:54:07 +0000 | [diff] [blame] | 112 | user options for Nulgrind: |
| 113 | (none) |
nethercote | f4928da | 2004-06-15 10:54:40 +0000 | [diff] [blame] | 114 | |
| 115 | debugging options for all Valgrind tools: |
njn | 97db761 | 2009-08-04 02:32:55 +0000 | [diff] [blame] | 116 | -d show verbose debugging output |
njn | b1cc5d6 | 2010-07-06 04:05:23 +0000 | [diff] [blame] | 117 | --stats=no|yes show tool and core statistics [no] |
nethercote | f4928da | 2004-06-15 10:54:40 +0000 | [diff] [blame] | 118 | --sanity-level=<number> level of sanity checking to do [1] |
sewardj | fa8ec11 | 2005-01-19 11:55:34 +0000 | [diff] [blame] | 119 | --trace-flags=<XXXXXXXX> show generated code? (X = 0|1) [00000000] |
| 120 | --profile-flags=<XXXXXXXX> ditto, but for profiling (X = 0|1) [00000000] |
sewardj | 17c5e2e | 2012-12-28 09:12:14 +0000 | [diff] [blame] | 121 | --profile-interval=<number> show profile every <number> event checks |
| 122 | [0, meaning only at the end of the run] |
sewardj | 33afdb5 | 2006-01-17 02:36:40 +0000 | [diff] [blame] | 123 | --trace-notbelow=<number> only show BBs above <number> [999999999] |
florian | 9aa15b7 | 2012-07-03 13:58:59 +0000 | [diff] [blame] | 124 | --trace-notabove=<number> only show BBs below <number> [0] |
nethercote | f4928da | 2004-06-15 10:54:40 +0000 | [diff] [blame] | 125 | --trace-syscalls=no|yes show all system calls? [no] |
| 126 | --trace-signals=no|yes show signal handling details? [no] |
| 127 | --trace-symtab=no|yes show symbol table details? [no] |
sewardj | 8af928c | 2007-02-13 10:24:32 +0000 | [diff] [blame] | 128 | --trace-symtab-patt=<patt> limit debuginfo tracing to obj name <patt> |
sewardj | 1dd628a | 2005-05-03 16:44:31 +0000 | [diff] [blame] | 129 | --trace-cfi=no|yes show call-frame-info details? [no] |
sewardj | 8af928c | 2007-02-13 10:24:32 +0000 | [diff] [blame] | 130 | --debug-dump=syms mimic /usr/bin/readelf --syms |
| 131 | --debug-dump=line mimic /usr/bin/readelf --debug-dump=line |
| 132 | --debug-dump=frames mimic /usr/bin/readelf --debug-dump=frames |
sewardj | 0ec07f3 | 2006-01-12 12:32:32 +0000 | [diff] [blame] | 133 | --trace-redir=no|yes show redirection details? [no] |
nethercote | f4928da | 2004-06-15 10:54:40 +0000 | [diff] [blame] | 134 | --trace-sched=no|yes show thread scheduler details? [no] |
sewardj | 6f089c7 | 2008-11-08 15:05:49 +0000 | [diff] [blame] | 135 | --profile-heap=no|yes profile Valgrind's own space use |
philippe | 0644437 | 2012-10-12 21:46:55 +0000 | [diff] [blame] | 136 | --core-redzone-size=<number> set minimum size of redzones added before/after |
philippe | d99c26a | 2012-07-31 22:17:28 +0000 | [diff] [blame] | 137 | heap blocks allocated for Valgrind internal use (in bytes) [4] |
nethercote | f4928da | 2004-06-15 10:54:40 +0000 | [diff] [blame] | 138 | --wait-for-gdb=yes|no pause on startup to wait for gdb attach |
sewardj | 3477e8c | 2006-10-17 11:08:12 +0000 | [diff] [blame] | 139 | --sym-offsets=yes|no show syms in form 'name+offset' ? [no] |
sewardj | b5f6f51 | 2005-03-10 23:59:00 +0000 | [diff] [blame] | 140 | --command-line-only=no|yes only use command line options [no] |
njn | 613812e | 2005-03-11 04:57:30 +0000 | [diff] [blame] | 141 | |
njn | 97db761 | 2009-08-04 02:32:55 +0000 | [diff] [blame] | 142 | Vex options for all Valgrind tools: |
| 143 | --vex-iropt-verbosity=<0..9> [0] |
| 144 | --vex-iropt-level=<0..2> [2] |
philippe | 5b240c2 | 2012-08-14 22:28:31 +0000 | [diff] [blame] | 145 | --vex-iropt-register-updates=sp-at-mem-access |
| 146 | |unwindregs-at-mem-access |
philippe | 0c0291a | 2012-08-01 22:03:12 +0000 | [diff] [blame] | 147 | |allregs-at-mem-access |
| 148 | |allregs-at-each-insn [unwindregs-at-mem-access] |
njn | 97db761 | 2009-08-04 02:32:55 +0000 | [diff] [blame] | 149 | --vex-iropt-unroll-thresh=<0..400> [120] |
| 150 | --vex-guest-max-insns=<1..100> [50] |
| 151 | --vex-guest-chase-thresh=<0..99> [10] |
sewardj | 540cc4a | 2010-01-15 10:57:57 +0000 | [diff] [blame] | 152 | --vex-guest-chase-cond=no|yes [no] |
sewardj | fa8ec11 | 2005-01-19 11:55:34 +0000 | [diff] [blame] | 153 | --trace-flags and --profile-flags values (omit the middle space): |
sewardj | 0dbb7de | 2004-11-26 12:37:10 +0000 | [diff] [blame] | 154 | 1000 0000 show conversion into IR |
| 155 | 0100 0000 show after initial opt |
| 156 | 0010 0000 show after instrumentation |
| 157 | 0001 0000 show after second opt |
| 158 | 0000 1000 show after tree building |
| 159 | 0000 0100 show selecting insns |
| 160 | 0000 0010 show after reg-alloc |
| 161 | 0000 0001 show final assembly |
sewardj | 17c5e2e | 2012-12-28 09:12:14 +0000 | [diff] [blame] | 162 | 0000 0000 show summary profile only |
sewardj | e5b6cc4 | 2013-07-02 20:47:24 +0000 | [diff] [blame] | 163 | (Nb: you need --trace-notbelow and/or --trace-notabove |
| 164 | with --trace-flags for full details) |
sewardj | 0dbb7de | 2004-11-26 12:37:10 +0000 | [diff] [blame] | 165 | |
nethercote | f4928da | 2004-06-15 10:54:40 +0000 | [diff] [blame] | 166 | debugging options for Valgrind tools that report errors |
| 167 | --dump-error=<number> show translation for basic block associated |
| 168 | with <number>'th error context [0=show none] |
| 169 | |
njn | 97db761 | 2009-08-04 02:32:55 +0000 | [diff] [blame] | 170 | debugging options for Valgrind tools that replace malloc: |
| 171 | --trace-malloc=no|yes show client malloc details? [no] |
| 172 | |
njn | 7eea51f | 2004-11-26 12:54:07 +0000 | [diff] [blame] | 173 | debugging options for Nulgrind: |
| 174 | (none) |
nethercote | f4928da | 2004-06-15 10:54:40 +0000 | [diff] [blame] | 175 | |
| 176 | Extra options read from ~/.valgrindrc, $VALGRIND_OPTS, ./.valgrindrc |
| 177 | |
sewardj | 0f157dd | 2013-10-18 14:27:36 +0000 | [diff] [blame] | 178 | Nulgrind is Copyright (C) 2002-2013, and GNU GPL'd, by Nicholas Nethercote. |
| 179 | Valgrind is Copyright (C) 2000-2013, and GNU GPL'd, by Julian Seward et al. |
| 180 | LibVEX is Copyright (C) 2004-2013, and GNU GPL'd, by OpenWorks LLP et al. |
nethercote | f4928da | 2004-06-15 10:54:40 +0000 | [diff] [blame] | 181 | |
njn | 10b9aea | 2009-07-14 06:55:05 +0000 | [diff] [blame] | 182 | Bug reports, feedback, admiration, abuse, etc, to: www.valgrind.org. |
nethercote | f4928da | 2004-06-15 10:54:40 +0000 | [diff] [blame] | 183 | |