1ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownusage: valgrind [options] prog-and-args 2ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown tool-selection option, with default in [ ]: 4ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --tool=<name> use the Valgrind tool named <name> [memcheck] 5ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 6ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown basic user options for all Valgrind tools, with defaults in [ ]: 7ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown -h --help show this message 8ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --help-debug show this message, plus debugging options 9ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --version show version 10ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown -q --quiet run silently; only print error msgs 11ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown -v --verbose be more verbose -- show misc extra info 12ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --trace-children=no|yes Valgrind-ise child processes (follow execve)? [no] 13ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --trace-children-skip=patt1,patt2,... specifies a list of executables 14ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown that --trace-children=yes should not trace into 15b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov --trace-children-skip-by-arg=patt1,patt2,... same as --trace-children-skip= 16b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov but check the argv[] entries for children, rather 17b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov than the exe name, to make a follow/no-follow decision 18ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --child-silent-after-fork=no|yes omit child output between fork & exec? [no] 19b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov --vgdb=no|yes|full activate gdbserver? [yes] 20b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov full is slower but provides precise watchpoint/step 21b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov --vgdb-error=<number> invoke gdbserver after <number> errors [999999999] 22b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov to get started quickly, use --vgdb-error=0 23b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov and follow the on-screen directions 24eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov --vgdb-stop-at=event1,event2,... invoke gdbserver for given events [none] 25eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov where event is one of startup exit valgrindabexit all none 26ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --track-fds=no|yes track open file descriptors? [no] 27ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --time-stamp=no|yes add timestamps to log messages? [no] 28ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --log-fd=<number> log messages to file descriptor [2=stderr] 29ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --log-file=<file> log messages to <file> 30ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --log-socket=ipaddr:port log messages to socket ipaddr:port 31ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 32ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown user options for Valgrind tools that report errors: 33ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --xml=yes emit error output in XML (some tools only) 34ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --xml-fd=<number> XML output to file descriptor 35ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --xml-file=<file> XML output to <file> 36ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --xml-socket=ipaddr:port XML output to socket ipaddr:port 37ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --xml-user-comment=STR copy STR verbatim into XML output 38ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --demangle=no|yes automatically demangle C++ names? [yes] 39ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --num-callers=<number> show <number> callers in stack traces [12] 40ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --error-limit=no|yes stop showing new errors if too many? [yes] 41ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --error-exitcode=<number> exit code to return if errors found [0=disable] 42ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --show-below-main=no|yes continue stack traces below main() [no] 43ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --suppressions=<filename> suppress errors described in <filename> 44ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --gen-suppressions=no|yes|all print suppressions for errors? [no] 45ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --db-attach=no|yes start debugger when errors detected? [no] 46ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --db-command=<command> command to start debugger [... -nw %f %p] 47ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --input-fd=<number> file descriptor for input [0=stdin] 48ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --dsymutil=no|yes run dsymutil on Mac OS X when helpful? [no] 49ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --max-stackframe=<number> assume stack switch for SP changes larger 50ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown than <number> bytes [2000000] 51ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --main-stacksize=<number> set size of main thread's stack (in bytes) 52436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov [min(max(current 'ulimit' value,1MB),16MB)] 53ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 54ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown user options for Valgrind tools that replace malloc: 55663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng --alignment=<number> set minimum alignment of heap allocations [not used by this tool] 56663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng --redzone-size=<number> set minimum size of redzones added before/after 57663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng heap blocks (in bytes). [not used by this tool] 58ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 59ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown uncommon user options for all Valgrind tools: 60ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --fullpath-after= (with nothing after the '=') 61ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown show full source paths in call stacks 62ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --fullpath-after=string like --fullpath-after=, but only show the 63ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown part of the path after 'string'. Allows removal 64ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown of path prefixes. Use this flag multiple times 65ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown to specify a set of prefixes to remove. 66436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov --extra-debuginfo-path=path absolute path to search for additional 67436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov debug symbols, in addition to existing default 68436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov well known search paths. 69436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov --debuginfo-server=ipaddr:port also query this server 70436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov (valgrind-di-server) for debug symbols 71436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov --allow-mismatched-debuginfo=no|yes [no] 72436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov for the above two flags only, accept debuginfo 73436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov objects that don't "match" the main object 74b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov --smc-check=none|stack|all|all-non-file [stack] 75b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov checks for self-modifying code: none, only for 76b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov code found in stacks, for all code, or for all 77b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov code except that from file-backed mappings 78ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --read-var-info=yes|no read debug info on stack and global variables 79ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown and use it to print better error messages in 80ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown tools that make use of it (Memcheck, Helgrind, 81ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown DRD) [no] 82b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov --vgdb-poll=<number> gdbserver poll max every <number> basic blocks [5000] 83b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov --vgdb-shadow-registers=no|yes let gdb see the shadow registers [no] 84b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov --vgdb-prefix=<prefix> prefix for vgdb FIFOs [/tmp/vgdb-pipe] 85ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --run-libc-freeres=no|yes free up glibc memory at exit on Linux? [yes] 86ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --sim-hints=hint1,hint2,... known hints: 87b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov lax-ioctls, enable-outer, fuse-compatible [none] 88663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng --fair-sched=no|yes|try schedule threads fairly on multicore systems [no] 89ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --kernel-variant=variant1,variant2,... known variants: bproc [none] 90ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown handle non-standard kernel variants 91436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov --merge-recursive-frames=<number> merge frames between identical 92436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov program counters in max <number> frames) [0] 93436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov --num-transtab-sectors=<number> size of translated code cache [16] 94436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov more sectors may increase performance, but use more memory. 95eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov --aspace-minaddr=0xPP avoid mapping memory below 0xPP [guessed] 96ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --show-emwarns=no|yes show warnings about emulation limits? [no] 97ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --require-text-symbol=:sonamepattern:symbolpattern abort run if the 98ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown stated shared object doesn't have the stated 99ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown text symbol. Patterns can contain ? and *. 100663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng --soname-synonyms=syn1=pattern1,syn2=pattern2,... synonym soname 101663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng specify patterns for function wrapping or replacement. 102663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng To use a non-libc malloc library that is 103663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng in the main exe: --soname-synonyms=somalloc=NONE 104663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng in libxyzzy.so: --soname-synonyms=somalloc=libxyzzy.so 105436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov --sigill-diagnostics=yes|no warn about illegal instructions? [yes] 106436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov --unw-stack-scan-thresh=<number> Enable stack-scan unwind if fewer 107436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov than <number> good frames found [0, meaning "disabled"] 108436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov NOTE: stack scanning is only available on arm-linux. 109436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov --unw-stack-scan-frames=<number> Max number of frames that can be 110436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov recovered by stack scanning [5] 111ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 112ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown user options for Nulgrind: 113ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown (none) 114ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 115ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown debugging options for all Valgrind tools: 116ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown -d show verbose debugging output 117ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --stats=no|yes show tool and core statistics [no] 118ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --sanity-level=<number> level of sanity checking to do [1] 119ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --trace-flags=<XXXXXXXX> show generated code? (X = 0|1) [00000000] 120ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --profile-flags=<XXXXXXXX> ditto, but for profiling (X = 0|1) [00000000] 121436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov --profile-interval=<number> show profile every <number> event checks 122436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov [0, meaning only at the end of the run] 123ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --trace-notbelow=<number> only show BBs above <number> [999999999] 124663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng --trace-notabove=<number> only show BBs below <number> [0] 125ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --trace-syscalls=no|yes show all system calls? [no] 126ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --trace-signals=no|yes show signal handling details? [no] 127ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --trace-symtab=no|yes show symbol table details? [no] 128ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --trace-symtab-patt=<patt> limit debuginfo tracing to obj name <patt> 129ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --trace-cfi=no|yes show call-frame-info details? [no] 130ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --debug-dump=syms mimic /usr/bin/readelf --syms 131ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --debug-dump=line mimic /usr/bin/readelf --debug-dump=line 132ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --debug-dump=frames mimic /usr/bin/readelf --debug-dump=frames 133ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --trace-redir=no|yes show redirection details? [no] 134ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --trace-sched=no|yes show thread scheduler details? [no] 135ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --profile-heap=no|yes profile Valgrind's own space use 136436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov --core-redzone-size=<number> set minimum size of redzones added before/after 137663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng heap blocks allocated for Valgrind internal use (in bytes) [4] 138ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --wait-for-gdb=yes|no pause on startup to wait for gdb attach 139ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --sym-offsets=yes|no show syms in form 'name+offset' ? [no] 140ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --command-line-only=no|yes only use command line options [no] 141ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 142ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown Vex options for all Valgrind tools: 143ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --vex-iropt-verbosity=<0..9> [0] 144ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --vex-iropt-level=<0..2> [2] 145436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov --vex-iropt-register-updates=sp-at-mem-access 146436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov |unwindregs-at-mem-access 147663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng |allregs-at-mem-access 148663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng |allregs-at-each-insn [unwindregs-at-mem-access] 149ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --vex-iropt-unroll-thresh=<0..400> [120] 150ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --vex-guest-max-insns=<1..100> [50] 151ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --vex-guest-chase-thresh=<0..99> [10] 152ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --vex-guest-chase-cond=no|yes [no] 153ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --trace-flags and --profile-flags values (omit the middle space): 154ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1000 0000 show conversion into IR 155ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 0100 0000 show after initial opt 156ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 0010 0000 show after instrumentation 157ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 0001 0000 show after second opt 158ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 0000 1000 show after tree building 159ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 0000 0100 show selecting insns 160ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 0000 0010 show after reg-alloc 161ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 0000 0001 show final assembly 162436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 0000 0000 show summary profile only 163436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov (Nb: you need --trace-notbelow and/or --trace-notabove 164436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov with --trace-flags for full details) 165ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 166ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown debugging options for Valgrind tools that report errors 167ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --dump-error=<number> show translation for basic block associated 168ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown with <number>'th error context [0=show none] 169ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 170ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown debugging options for Valgrind tools that replace malloc: 171ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown --trace-malloc=no|yes show client malloc details? [no] 172ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 173ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown debugging options for Nulgrind: 174ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown (none) 175ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 176ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown Extra options read from ~/.valgrindrc, $VALGRIND_OPTS, ./.valgrindrc 177ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 178436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov Nulgrind is Copyright (C) 2002-2013, and GNU GPL'd, by Nicholas Nethercote. 179436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov Valgrind is Copyright (C) 2000-2013, and GNU GPL'd, by Julian Seward et al. 180436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov LibVEX is Copyright (C) 2004-2013, and GNU GPL'd, by OpenWorks LLP et al. 181ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 182ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown Bug reports, feedback, admiration, abuse, etc, to: www.valgrind.org. 183ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 184