1 usage: valgrind [options] prog-and-args
3 tool-selection option, with default in [ ]:
4 --tool=<name> use the Valgrind tool named <name> [memcheck]
6 memcheck cachegrind callgrind helgrind drd
7 massif dhat lackey none exp-bbv
9 basic user options for all Valgrind tools, with defaults in [ ]:
10 -h --help show this message
11 --help-debug show this message, plus debugging options
12 --help-dyn-options show the dynamically changeable options
13 --version show version
14 -q --quiet run silently; only print error msgs
15 -v --verbose be more verbose -- show misc extra info
16 --trace-children=no|yes Valgrind-ise child processes (follow execve)? [no]
17 --trace-children-skip=patt1,patt2,... specifies a list of executables
18 that --trace-children=yes should not trace into
19 --trace-children-skip-by-arg=patt1,patt2,... same as --trace-children-skip=
20 but check the argv[] entries for children, rather
21 than the exe name, to make a follow/no-follow decision
22 --child-silent-after-fork=no|yes omit child output between fork & exec? [no]
23 --vgdb=no|yes|full activate gdbserver? [yes]
24 full is slower but provides precise watchpoint/step
25 --vgdb-error=<number> invoke gdbserver after <number> errors [999999999]
26 to get started quickly, use --vgdb-error=0
27 and follow the on-screen directions
28 --vgdb-stop-at=event1,event2,... invoke gdbserver for given events [none]
29 where event is one of:
30 startup exit abexit valgrindabexit all none
31 --track-fds=no|yes|all track open file descriptors? [no]
32 all includes reporting stdin, stdout and stderr
33 --time-stamp=no|yes add timestamps to log messages? [no]
34 --log-fd=<number> log messages to file descriptor [2=stderr]
35 --log-file=<file> log messages to <file>
36 --log-socket=ipaddr:port log messages to socket ipaddr:port
37 --enable-debuginfod=no|yes query debuginfod servers for missing
40 user options for Valgrind tools that report errors:
41 --xml=yes emit error output in XML (some tools only)
42 --xml-fd=<number> XML output to file descriptor
43 --xml-file=<file> XML output to <file>
44 --xml-socket=ipaddr:port XML output to socket ipaddr:port
45 --xml-user-comment=STR copy STR verbatim into XML output
46 --demangle=no|yes automatically demangle decorated names? [yes]
47 supported languages: C++, D, Rust, Java, Ada
48 --num-callers=<number> show <number> callers in stack traces [12]
49 --error-limit=no|yes stop showing new errors if too many? [yes]
50 --exit-on-first-error=no|yes exit code on the first error found? [no]
51 --error-exitcode=<number> exit code to return if errors found [0=disable]
52 --error-markers=<begin>,<end> add lines with begin/end markers before/after
53 each error output in plain text mode [none]
54 --show-error-list=no|yes|all show detected errors list and
55 suppression counts at exit [no].
56 all means to also print suppressed errors.
57 -s same as --show-error-list=yes
58 --keep-debuginfo=no|yes Keep symbols etc for unloaded code [no]
59 This allows saved stack traces (e.g. memory leaks)
60 to include file/line info for code that has been
61 dlclose'd (or similar)
62 --show-below-main=no|yes continue stack traces below main() [no]
63 --default-suppressions=yes|no
64 load default suppressions [yes]
65 --suppressions=<filename> suppress errors described in <filename>
66 --gen-suppressions=no|yes|all print suppressions for errors? [no]
67 --input-fd=<number> file descriptor for input [0=stdin]
68 --dsymutil=no|yes run dsymutil on Mac OS X when helpful? [yes]
69 --max-stackframe=<number> assume stack switch for SP changes larger
70 than <number> bytes [2000000]
71 --main-stacksize=<number> set size of main thread's stack (in bytes)
72 [min(max(current 'ulimit' value,1MB),16MB)]
74 user options for Valgrind tools that replace malloc:
75 --alignment=<number> set minimum alignment of heap allocations [not used by this tool]
76 --redzone-size=<number> set minimum size of redzones added before/after
77 heap blocks (in bytes). [not used by this tool]
78 --xtree-memory=none|allocs|full profile heap memory in an xtree [none]
79 and produces a report at the end of the execution
80 none: no profiling, allocs: current allocated
81 size/blocks, full: profile current and cumulative
82 allocated size/blocks and freed size/blocks.
83 --xtree-memory-file=<file> xtree memory report file [xtmemory.kcg.%p]
84 --realloc-zero-bytes-frees=yes|no [yes on Linux glibc, no otherwise]
85 should calls to realloc with a size of 0
86 free memory and return NULL or
87 allocate/resize and return non-NULL
89 uncommon user options for all Valgrind tools:
90 --fullpath-after= (with nothing after the '=')
91 show full source paths in call stacks
92 --fullpath-after=string like --fullpath-after=, but only show the
93 part of the path after 'string'. Allows removal
94 of path prefixes. Use this flag multiple times
95 to specify a set of prefixes to remove.
96 --extra-debuginfo-path=path absolute path to search for additional
97 debug symbols, in addition to existing default
98 well known search paths.
99 --debuginfo-server=ipaddr:port also query this server
100 (valgrind-di-server) for debug symbols
101 --allow-mismatched-debuginfo=no|yes [no]
102 for the above two flags only, accept debuginfo
103 objects that don't "match" the main object
104 --smc-check=none|stack|all|all-non-file [all-non-file]
105 checks for self-modifying code: none, only for
106 code found in stacks, for all code, or for all
107 code except that from file-backed mappings
108 --read-inline-info=yes|no read debug info about inlined function calls
109 and use it to do better stack traces.
110 [yes] on Linux/Android/Solaris for the tools
111 Memcheck/Massif/Helgrind/DRD only.
112 [no] for all other tools and platforms.
113 --read-var-info=yes|no read debug info on stack and global variables
114 and use it to print better error messages in
115 tools that make use of it (Memcheck, Helgrind,
117 --vgdb-poll=<number> gdbserver poll max every <number> basic blocks [5000]
118 --vgdb-shadow-registers=no|yes let gdb see the shadow registers [no]
119 --vgdb-prefix=<prefix> prefix for vgdb FIFOs [.../vgdb-pipe]
120 --run-libc-freeres=no|yes free up glibc memory at exit on Linux? [yes]
121 --run-cxx-freeres=no|yes free up libstdc++ memory at exit on Linux
123 --sim-hints=hint1,hint2,... activate unusual sim behaviours [none]
124 where hint is one of:
125 lax-ioctls lax-doors fuse-compatible enable-outer
126 no-inner-prefix no-nptl-pthread-stackcache fallback-llsc none
127 --scheduling-quantum=<number> thread-scheduling timeslice in number of
128 basic blocks [100000]
129 --fair-sched=no|yes|try schedule threads fairly on multicore systems [no]
130 --kernel-variant=variant1,variant2,...
131 handle non-standard kernel variants [none]
132 where variant is one of:
133 bproc android-no-hw-tls
134 android-gpu-sgx5xx android-gpu-adreno3xx none
135 --merge-recursive-frames=<number> merge frames between identical
136 program counters in max <number> frames) [0]
137 --num-transtab-sectors=<number> size of translated code cache [32]
138 more sectors may increase performance, but use more memory.
139 --avg-transtab-entry-size=<number> avg size in bytes of a translated
140 basic block [0, meaning use tool provided default]
141 --aspace-minaddr=0xPP avoid mapping memory below 0xPP [guessed]
142 --valgrind-stacksize=<number> size of valgrind (host) thread's stack
144 --show-emwarns=no|yes show warnings about emulation limits? [no]
145 --require-text-symbol=:sonamepattern:symbolpattern abort run if the
146 stated shared object doesn't have the stated
147 text symbol. Patterns can contain ? and *.
148 --soname-synonyms=syn1=pattern1,syn2=pattern2,... synonym soname
149 specify patterns for function wrapping or replacement.
150 To use a non-libc malloc library that is
151 in the main exe: --soname-synonyms=somalloc=NONE
152 in libxyzzy.so: --soname-synonyms=somalloc=libxyzzy.so
153 --sigill-diagnostics=yes|no warn about illegal instructions? [yes]
154 --unw-stack-scan-thresh=<number> Enable stack-scan unwind if fewer
155 than <number> good frames found [0, meaning "disabled"]
156 NOTE: stack scanning is only available on arm-linux.
157 --unw-stack-scan-frames=<number> Max number of frames that can be
158 recovered by stack scanning [5]
159 --resync-filter=no|yes|verbose [yes on MacOS, no on other OSes]
160 attempt to avoid expensive address-space-resync operations
161 --max-threads=<number> maximum number of threads that valgrind can
164 user options for Nulgrind:
167 Extra options read from ~/.valgrindrc, $VALGRIND_OPTS, ./.valgrindrc
169 Nulgrind is Copyright (C) 2000, and GNU GPL'd, by Nicholas Nethercote et al.
170 Valgrind is Copyright (C) 2000, and GNU GPL'd, by Julian Seward et al.
171 LibVEX is Copyright (C) 2000, and GNU GPL'd, by OpenWorks LLP et al.
173 Bug reports, feedback, admiration, abuse, etc, to: www.valgrind.org.