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