1 usage: valgrind [options] prog-and-args 2 3 tool-selection option, with default in [ ]: 4 --tool=<name> use the Valgrind tool named <name> [memcheck] 5 6 basic user options for all Valgrind tools, with defaults in [ ]: 7 -h --help show this message 8 --help-debug show this message, plus debugging options 9 --version show version 10 -q --quiet run silently; only print error msgs 11 -v --verbose be more verbose -- show misc extra info 12 --trace-children=no|yes Valgrind-ise child processes (follow execve)? [no] 13 --trace-children-skip=patt1,patt2,... specifies a list of executables 14 that --trace-children=yes should not trace into 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 18 --child-silent-after-fork=no|yes omit child output between fork & exec? [no] 19 --vgdb=no|yes|full activate gdbserver? [yes] 20 full is slower but provides precise watchpoint/step 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 24 --vgdb-stop-at=event1,event2,... invoke gdbserver for given events [none] 25 where event is one of startup exit valgrindabexit all none 26 --track-fds=no|yes track open file descriptors? [no] 27 --time-stamp=no|yes add timestamps to log messages? [no] 28 --log-fd=<number> log messages to file descriptor [2=stderr] 29 --log-file=<file> log messages to <file> 30 --log-socket=ipaddr:port log messages to socket ipaddr:port 31 32 user options for Valgrind tools that report errors: 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 38 --demangle=no|yes automatically demangle C++ names? [yes] 39 --num-callers=<number> show <number> callers in stack traces [12] 40 --error-limit=no|yes stop showing new errors if too many? [yes] 41 --error-exitcode=<number> exit code to return if errors found [0=disable] 42 --show-below-main=no|yes continue stack traces below main() [no] 43 --suppressions=<filename> suppress errors described in <filename> 44 --gen-suppressions=no|yes|all print suppressions for errors? [no] 45 --db-attach=no|yes start debugger when errors detected? [no] 46 --db-command=<command> command to start debugger [... -nw %f %p] 47 --input-fd=<number> file descriptor for input [0=stdin] 48 --dsymutil=no|yes run dsymutil on Mac OS X when helpful? [no] 49 --max-stackframe=<number> assume stack switch for SP changes larger 50 than <number> bytes [2000000] 51 --main-stacksize=<number> set size of main thread's stack (in bytes) 52 [min(max(current 'ulimit' value,1MB),16MB)] 53 54 user options for Valgrind tools that replace malloc: 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] 58 59 uncommon user options for all Valgrind tools: 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. 66 --extra-debuginfo-path=path absolute path to search for additional 67 debug symbols, in addition to existing default 68 well known search paths. 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 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 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, 81 DRD) [no] 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] 85 --run-libc-freeres=no|yes free up glibc memory at exit on Linux? [yes] 86 --sim-hints=hint1,hint2,... known hints: 87 lax-ioctls, enable-outer, fuse-compatible [none] 88 --fair-sched=no|yes|try schedule threads fairly on multicore systems [no] 89 --kernel-variant=variant1,variant2,... known variants: bproc [none] 90 handle non-standard kernel variants 91 --merge-recursive-frames=<number> merge frames between identical 92 program counters in max <number> frames) [0] 93 --num-transtab-sectors=<number> size of translated code cache [16] 94 more sectors may increase performance, but use more memory. 95 --aspace-minaddr=0xPP avoid mapping memory below 0xPP [guessed] 96 --show-emwarns=no|yes show warnings about emulation limits? [no] 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 *. 100 --soname-synonyms=syn1=pattern1,syn2=pattern2,... synonym soname 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 105 --sigill-diagnostics=yes|no warn about illegal instructions? [yes] 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] 111 112 user options for Nulgrind: 113 (none) 114 115 debugging options for all Valgrind tools: 116 -d show verbose debugging output 117 --stats=no|yes show tool and core statistics [no] 118 --sanity-level=<number> level of sanity checking to do [1] 119 --trace-flags=<XXXXXXXX> show generated code? (X = 0|1) [00000000] 120 --profile-flags=<XXXXXXXX> ditto, but for profiling (X = 0|1) [00000000] 121 --profile-interval=<number> show profile every <number> event checks 122 [0, meaning only at the end of the run] 123 --trace-notbelow=<number> only show BBs above <number> [999999999] 124 --trace-notabove=<number> only show BBs below <number> [0] 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] 128 --trace-symtab-patt=<patt> limit debuginfo tracing to obj name <patt> 129 --trace-cfi=no|yes show call-frame-info details? [no] 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 133 --trace-redir=no|yes show redirection details? [no] 134 --trace-sched=no|yes show thread scheduler details? [no] 135 --profile-heap=no|yes profile Valgrind's own space use 136 --core-redzone-size=<number> set minimum size of redzones added before/after 137 heap blocks allocated for Valgrind internal use (in bytes) [4] 138 --wait-for-gdb=yes|no pause on startup to wait for gdb attach 139 --sym-offsets=yes|no show syms in form 'name+offset' ? [no] 140 --command-line-only=no|yes only use command line options [no] 141 142 Vex options for all Valgrind tools: 143 --vex-iropt-verbosity=<0..9> [0] 144 --vex-iropt-level=<0..2> [2] 145 --vex-iropt-register-updates=sp-at-mem-access 146 |unwindregs-at-mem-access 147 |allregs-at-mem-access 148 |allregs-at-each-insn [unwindregs-at-mem-access] 149 --vex-iropt-unroll-thresh=<0..400> [120] 150 --vex-guest-max-insns=<1..100> [50] 151 --vex-guest-chase-thresh=<0..99> [10] 152 --vex-guest-chase-cond=no|yes [no] 153 --trace-flags and --profile-flags values (omit the middle space): 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 162 0000 0000 show summary profile only 163 (Nb: you need --trace-notbelow and/or --trace-notabove 164 with --trace-flags for full details) 165 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 170 debugging options for Valgrind tools that replace malloc: 171 --trace-malloc=no|yes show client malloc details? [no] 172 173 debugging options for Nulgrind: 174 (none) 175 176 Extra options read from ~/.valgrindrc, $VALGRIND_OPTS, ./.valgrindrc 177 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. 181 182 Bug reports, feedback, admiration, abuse, etc, to: www.valgrind.org. 183 184