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: 26 startup exit valgrindabexit all none 27 --track-fds=no|yes track open file descriptors? [no] 28 --time-stamp=no|yes add timestamps to log messages? [no] 29 --log-fd=<number> log messages to file descriptor [2=stderr] 30 --log-file=<file> log messages to <file> 31 --log-socket=ipaddr:port log messages to socket ipaddr:port 32 33 user options for Valgrind tools that report errors: 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 39 --demangle=no|yes automatically demangle C++ names? [yes] 40 --num-callers=<number> show <number> callers in stack traces [12] 41 --error-limit=no|yes stop showing new errors if too many? [yes] 42 --error-exitcode=<number> exit code to return if errors found [0=disable] 43 --error-markers=<begin>,<end> add lines with begin/end markers before/after 44 each error output in plain text mode [none] 45 --show-below-main=no|yes continue stack traces below main() [no] 46 --default-suppressions=yes|no 47 load default suppressions [yes] 48 --suppressions=<filename> suppress errors described in <filename> 49 --gen-suppressions=no|yes|all print suppressions for errors? [no] 50 --input-fd=<number> file descriptor for input [0=stdin] 51 --dsymutil=no|yes run dsymutil on Mac OS X when helpful? [yes] 52 --max-stackframe=<number> assume stack switch for SP changes larger 53 than <number> bytes [2000000] 54 --main-stacksize=<number> set size of main thread's stack (in bytes) 55 [min(max(current 'ulimit' value,1MB),16MB)] 56 57 user options for Valgrind tools that replace malloc: 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] 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] 67 68 uncommon user options for all Valgrind tools: 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. 75 --extra-debuginfo-path=path absolute path to search for additional 76 debug symbols, in addition to existing default 77 well known search paths. 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 83 --smc-check=none|stack|all|all-non-file [all-non-file] 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 87 --read-inline-info=yes|no read debug info about inlined function calls 88 and use it to do better stack traces. [yes] 89 on Linux/Android/Solaris for Memcheck/Helgrind/DRD 90 only. [no] for all other tools and platforms. 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, 94 DRD) [no] 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] 97 --vgdb-prefix=<prefix> prefix for vgdb FIFOs [.../vgdb-pipe] 98 --run-libc-freeres=no|yes free up glibc memory at exit on Linux? [yes] 99 --run-cxx-freeres=no|yes free up libstdc++ memory at exit on Linux 100 and Solaris? [yes] 101 --sim-hints=hint1,hint2,... activate unusual sim behaviours [none] 102 where hint is one of: 103 lax-ioctls lax-doors fuse-compatible enable-outer 104 no-inner-prefix no-nptl-pthread-stackcache fallback-llsc none 105 --fair-sched=no|yes|try schedule threads fairly on multicore systems [no] 106 --kernel-variant=variant1,variant2,... 107 handle non-standard kernel variants [none] 108 where variant is one of: 109 bproc android-no-hw-tls 110 android-gpu-sgx5xx android-gpu-adreno3xx none 111 --merge-recursive-frames=<number> merge frames between identical 112 program counters in max <number> frames) [0] 113 --num-transtab-sectors=<number> size of translated code cache [32] 114 more sectors may increase performance, but use more memory. 115 --avg-transtab-entry-size=<number> avg size in bytes of a translated 116 basic block [0, meaning use tool provided default] 117 --aspace-minaddr=0xPP avoid mapping memory below 0xPP [guessed] 118 --valgrind-stacksize=<number> size of valgrind (host) thread's stack 119 (in bytes) [1048576] 120 --show-emwarns=no|yes show warnings about emulation limits? [no] 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 *. 124 --soname-synonyms=syn1=pattern1,syn2=pattern2,... synonym soname 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 129 --sigill-diagnostics=yes|no warn about illegal instructions? [yes] 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] 135 --resync-filter=no|yes|verbose [yes on MacOS, no on other OSes] 136 attempt to avoid expensive address-space-resync operations 137 --max-threads=<number> maximum number of threads that valgrind can 138 handle [500] 139 140 user options for Nulgrind: 141 (none) 142 143 debugging options for all Valgrind tools: 144 -d show verbose debugging output 145 --stats=no|yes show tool and core statistics [no] 146 --sanity-level=<number> level of sanity checking to do [1] 147 --trace-flags=<XXXXXXXX> show generated code? (X = 0|1) [00000000] 148 --profile-flags=<XXXXXXXX> ditto, but for profiling (X = 0|1) [00000000] 149 --profile-interval=<number> show profile every <number> event checks 150 [0, meaning only at the end of the run] 151 --trace-notbelow=<number> only show BBs above <number> [999999999] 152 --trace-notabove=<number> only show BBs below <number> [0] 153 --trace-syscalls=no|yes show all system calls? [no] 154 --trace-signals=no|yes show signal handling details? [no] 155 --trace-symtab=no|yes show symbol table details? [no] 156 --trace-symtab-patt=<patt> limit debuginfo tracing to obj name <patt> 157 --trace-cfi=no|yes show call-frame-info details? [no] 158 --debug-dump=syms mimic /usr/bin/readelf --syms 159 --debug-dump=line mimic /usr/bin/readelf --debug-dump=line 160 --debug-dump=frames mimic /usr/bin/readelf --debug-dump=frames 161 --trace-redir=no|yes show redirection details? [no] 162 --trace-sched=no|yes show thread scheduler details? [no] 163 --profile-heap=no|yes profile Valgrind's own space use 164 --core-redzone-size=<number> set minimum size of redzones added before/after 165 heap blocks allocated for Valgrind internal use (in bytes) [4] 166 --wait-for-gdb=yes|no pause on startup to wait for gdb attach 167 --sym-offsets=yes|no show syms in form 'name+offset' ? [no] 168 --command-line-only=no|yes only use command line options [no] 169 170 Vex options for all Valgrind tools: 171 --vex-iropt-verbosity=<0..9> [0] 172 --vex-iropt-level=<0..2> [2] 173 --vex-iropt-unroll-thresh=<0..400> [120] 174 --vex-guest-max-insns=<1..100> [50] 175 --vex-guest-chase-thresh=<0..99> [10] 176 --vex-guest-chase-cond=no|yes [no] 177 Precise exception control. Possible values for 'mode' are as follows 178 and specify the minimum set of registers guaranteed to be correct 179 immediately prior to memory access instructions: 180 sp-at-mem-access stack pointer only 181 unwindregs-at-mem-access registers needed for stack unwinding 182 allregs-at-mem-access all registers 183 allregs-at-each-insn all registers are always correct 184 Default value for all 3 following flags is [unwindregs-at-mem-access]. 185 --vex-iropt-register-updates=mode setting to use by default 186 --px-default=mode synonym for --vex-iropt-register-updates 187 --px-file-backed=mode optional setting for file-backed (non-JIT) code 188 Tracing and profile control: 189 --trace-flags and --profile-flags values (omit the middle space): 190 1000 0000 show conversion into IR 191 0100 0000 show after initial opt 192 0010 0000 show after instrumentation 193 0001 0000 show after second opt 194 0000 1000 show after tree building 195 0000 0100 show selecting insns 196 0000 0010 show after reg-alloc 197 0000 0001 show final assembly 198 0000 0000 show summary profile only 199 (Nb: you need --trace-notbelow and/or --trace-notabove 200 with --trace-flags for full details) 201 202 debugging options for Valgrind tools that report errors 203 --dump-error=<number> show translation for basic block associated 204 with <number>'th error context [0=show none] 205 206 debugging options for Valgrind tools that replace malloc: 207 --trace-malloc=no|yes show client malloc details? [no] 208 --xtree-compress-strings=no|yes compress strings in xtree callgrind format [yes] 209 210 debugging options for Nulgrind: 211 (none) 212 213 Extra options read from ~/.valgrindrc, $VALGRIND_OPTS, ./.valgrindrc 214 215 Nulgrind is Copyright (C) 2002-2017, and GNU GPL'd, by Nicholas Nethercote. 216 Valgrind is Copyright (C) 2000-2017, and GNU GPL'd, by Julian Seward et al. 217 LibVEX is Copyright (C) 2004-2017, and GNU GPL'd, by OpenWorks LLP et al. 218 219 Bug reports, feedback, admiration, abuse, etc, to: www.valgrind.org. 220 221