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 C
++ names?
[yes
]
47 --num
-callers
=<number
> show <number
> callers in stack traces
[12]
48 --error
-limit=no|yes stop showing new errors
if too many?
[yes
]
49 --exit
-on-first
-error
=no|yes exit code
on the first error found?
[no
]
50 --error
-exitcode
=<number
> exit code to
return if errors found
[0=disable
]
51 --error
-markers
=<begin
>,<end
> add lines with begin
/end markers before
/after
52 each error output in plain
text mode [none]
53 --show-error
-list
=no|yes|all
show detected errors list and
54 suppression counts at exit
[no
].
55 all means to also print suppressed errors.
56 -s same as
--show-error
-list
=yes
57 --keep
-debuginfo
=no|yes Keep symbols etc
for unloaded code
[no
]
58 This allows saved stack traces
(e.g. memory leaks
)
59 to
include file
/line
info for code that has been
60 dlclose
'd (or similar)
61 --show-below-main=no|yes continue stack traces below main() [no]
62 --default-suppressions=yes|no
63 load default suppressions [yes]
64 --suppressions=<filename> suppress errors described in <filename>
65 --gen-suppressions=no|yes|all print suppressions for errors? [no]
66 --input-fd=<number> file descriptor for input [0=stdin]
67 --dsymutil=no|yes run dsymutil on Mac OS X when helpful? [yes]
68 --max-stackframe=<number> assume stack switch for SP changes larger
69 than <number> bytes [2000000]
70 --main-stacksize=<number> set size of main thread's stack
(in bytes
)
71 [min(max(current
'ulimit' value
,1MB
),16MB
)]
73 user options
for Valgrind tools that replace malloc
:
74 --alignment
=<number
> set minimum alignment of heap allocations
[not used by this tool
]
75 --redzone
-size
=<number
> set minimum size of redzones added before
/after
76 heap blocks
(in bytes
).
[not used by this tool
]
77 --xtree
-memory
=none|allocs|full profile heap memory in an xtree
[none]
78 and produces a
report at the end of the execution
79 none: no profiling
, allocs
: current allocated
80 size
/blocks
, full
: profile current and cumulative
81 allocated size
/blocks and freed size
/blocks.
82 --xtree
-memory
-file
=<file
> xtree memory
report file
[xtmemory.kcg.
%p
]
83 --realloc
-zero
-bytes
-frees
=yes|no
[yes
on Linux glibc
, no otherwise
]
84 should calls to realloc with a size of
0
85 free memory and
return NULL or
86 allocate
/resize and
return non
-NULL
88 uncommon user options
for all Valgrind tools
:
89 --fullpath
-after
= (with nothing after the
'=')
90 show full source paths in
call stacks
91 --fullpath
-after
=string like
--fullpath
-after
=, but only
show the
92 part of the path after
'string'. Allows removal
93 of path prefixes. Use this flag multiple times
94 to specify a
set of prefixes to remove.
95 --extra
-debuginfo
-path
=path absolute path to search
for additional
96 debug symbols
, in addition to existing default
97 well known search paths.
98 --debuginfo
-server
=ipaddr
:port also query this server
99 (valgrind
-di
-server
) for debug symbols
100 --allow
-mismatched
-debuginfo
=no|yes
[no
]
101 for the above two flags only
, accept debuginfo
102 objects that don
't "match" the main object
103 --smc-check=none|stack|all|all-non-file [all-non-file]
104 checks for self-modifying code: none, only for
105 code found in stacks, for all code, or for all
106 code except that from file-backed mappings
107 --read-inline-info=yes|no read debug info about inlined function calls
108 and use it to do better stack traces.
109 [yes] on Linux/Android/Solaris for the tools
110 Memcheck/Massif/Helgrind/DRD only.
111 [no] for all other tools and platforms.
112 --read-var-info=yes|no read debug info on stack and global variables
113 and use it to print better error messages in
114 tools that make use of it (Memcheck, Helgrind,
116 --vgdb-poll=<number> gdbserver poll max every <number> basic blocks [5000]
117 --vgdb-shadow-registers=no|yes let gdb see the shadow registers [no]
118 --vgdb-prefix=<prefix> prefix for vgdb FIFOs [.../vgdb-pipe]
119 --run-libc-freeres=no|yes free up glibc memory at exit on Linux? [yes]
120 --run-cxx-freeres=no|yes free up libstdc++ memory at exit on Linux
122 --sim-hints=hint1,hint2,... activate unusual sim behaviours [none]
123 where hint is one of:
124 lax-ioctls lax-doors fuse-compatible enable-outer
125 no-inner-prefix no-nptl-pthread-stackcache fallback-llsc none
126 --scheduling-quantum=<number> thread-scheduling timeslice in number of
127 basic blocks [100000]
128 --fair-sched=no|yes|try schedule threads fairly on multicore systems [no]
129 --kernel-variant=variant1,variant2,...
130 handle non-standard kernel variants [none]
131 where variant is one of:
132 bproc android-no-hw-tls
133 android-gpu-sgx5xx android-gpu-adreno3xx none
134 --merge-recursive-frames=<number> merge frames between identical
135 program counters in max <number> frames) [0]
136 --num-transtab-sectors=<number> size of translated code cache [32]
137 more sectors may increase performance, but use more memory.
138 --avg-transtab-entry-size=<number> avg size in bytes of a translated
139 basic block [0, meaning use tool provided default]
140 --aspace-minaddr=0xPP avoid mapping memory below 0xPP [guessed]
141 --valgrind-stacksize=<number> size of valgrind (host) thread's stack
143 --show-emwarns
=no|yes
show warnings about emulation limits?
[no
]
144 --require
-text-symbol
=:sonamepattern
:symbolpattern abort run
if the
145 stated shared object doesn
't have the stated
146 text symbol. Patterns can contain ? and *.
147 --soname-synonyms=syn1=pattern1,syn2=pattern2,... synonym soname
148 specify patterns for function wrapping or replacement.
149 To use a non-libc malloc library that is
150 in the main exe: --soname-synonyms=somalloc=NONE
151 in libxyzzy.so: --soname-synonyms=somalloc=libxyzzy.so
152 --sigill-diagnostics=yes|no warn about illegal instructions? [yes]
153 --unw-stack-scan-thresh=<number> Enable stack-scan unwind if fewer
154 than <number> good frames found [0, meaning "disabled"]
155 NOTE: stack scanning is only available on arm-linux.
156 --unw-stack-scan-frames=<number> Max number of frames that can be
157 recovered by stack scanning [5]
158 --resync-filter=no|yes|verbose [yes on MacOS, no on other OSes]
159 attempt to avoid expensive address-space-resync operations
160 --max-threads=<number> maximum number of threads that valgrind can
163 user options for Nulgrind:
166 Extra options read from ~/.valgrindrc, $VALGRIND_OPTS, ./.valgrindrc
168 Nulgrind is Copyright (C) 2000, and GNU GPL'd
, by Nicholas Nethercote et al.
169 Valgrind is Copyright
(C
) 2000, and GNU GPL
'd, by Julian Seward et al.
170 LibVEX is Copyright (C) 2000, and GNU GPL'd
, by OpenWorks LLP et al.
172 Bug reports
, feedback
, admiration
, abuse
, etc
, to
: www.valgrind.org.