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 Extra options read from ~/.valgrindrc, $VALGRIND_OPTS, ./.valgrindrc 144 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. 148 149 Bug reports, feedback, admiration, abuse, etc, to: www.valgrind.org. 150 151