Home | History | Annotate | Download | only in tests
      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