mirror of
git://git.code.sf.net/p/zsh/code
synced 2024-11-19 13:33:52 +01:00
97 lines
3.8 KiB
Plaintext
97 lines
3.8 KiB
Plaintext
#compdef valgrind -value-,VALGRIND_OPTS,-default-
|
|
|
|
local curcontext="$curcontext" state line common cmd
|
|
local -a args args_{memcheck,addrcheck,cachegrind,helgrind,massif}
|
|
|
|
cmd=(
|
|
'1:command name:_command_names -e'
|
|
'*::args :_normal'
|
|
)
|
|
|
|
if [[ $service = *_OPTS* ]]; then
|
|
compset -q
|
|
words=( fake "$words[@]" )
|
|
(( CURRENT++ ))
|
|
cmd=()
|
|
fi
|
|
|
|
common=(
|
|
'--sloppy-malloc=-[round malloc sizes to multiple of 4]:enable:(yes no)'
|
|
'--alignment=-[set minimum alignment of allocations]:number'
|
|
)
|
|
|
|
args_addrcheck=(
|
|
$common
|
|
'--partial-loads-ok=-:enable:(yes no)'
|
|
'--freelist-vol=-[volume of freed blocks queue]:blocks'
|
|
'--leak-check=-[search for memory leaks at exit]:enable:(yes no)'
|
|
'--leak-resolution=-[how much bt merging in leak check]:(low med high)'
|
|
'--show-reachable=-[show reachable blocks in leak check]:enable:(yes no)'
|
|
'--workaround-gcc296-bugs=-:enable:(yes no)'
|
|
)
|
|
|
|
args_memcheck=(
|
|
$args_addrcheck
|
|
'--avoid-strlen-errors=-[suppress errs from inlined strlen]:enable:(yes no)'
|
|
)
|
|
|
|
args_cachegrind=(
|
|
'--I1=-[set I1 cache manually]:size,assoc,line_size'
|
|
'--D1=-[set D1 cache manually]:size,assoc,line_size'
|
|
'--L2=-[set L2 cache manually]:size,assoc,line_size'
|
|
)
|
|
|
|
args_helgrind=(
|
|
$common
|
|
'--private-stacks=-[assume thread stacks are used privately]:enable:(yes no)'
|
|
'--show-last-access=-[show location of last word access on error]:locations:(no some all)'
|
|
)
|
|
|
|
args_massif=(
|
|
$common
|
|
'--heap=-[profile heap blocks]:enable:(yes no)'
|
|
'--heap-admin=-[specify average admin bytes per heap block]:bytes'
|
|
'--stacks=-[enable profile stacks]:enable:(yes no)'
|
|
'--depth=-[depth of contexts]:depth'
|
|
'--alloc-fn=-[specify alloc function]:function'
|
|
'--format=-[specify format of textual output]:format:(text html)'
|
|
)
|
|
|
|
args="args_${${words[(r)--(skin|tool)=*]#*=}:-memcheck}"
|
|
|
|
_arguments -C ${(P)args} $cmd \
|
|
'(--tool --skin)'{--tool,--skin}'=-[specify valgrind tool]:valgrind tool:->tools' \
|
|
'(-h --help)'{-h,--help}'[show help information]' \
|
|
'--help-debug[show help info including debugging options]' \
|
|
'--version[show version]' \
|
|
'(-q --quiet)'{-q,--quiet}'[run silently; only print error msgs]' \
|
|
'(-v --verbose)'{-v,--verbose}'[be more verbose]' \
|
|
'--trace-children=-[valgrind-ise child processes]:enable:(yes no)' \
|
|
'--track-fds=-[track open file descriptors]:enable:(yes no)' \
|
|
'--time-stamp=-[add timestamps to log messages]:enable:(yes no)' \
|
|
'--run-libc-freeres=-[free up glibc memory at exit]:enable:(yes no)' \
|
|
'--weird-hacks=-[enable hack]:hack:(lax-ioctls)' \
|
|
'--signal-polltime=-[signal poll period (ms)]:period' \
|
|
'--lowlat-signals=-[improve thread signal wake-up latency]:enable:(yes no)' \
|
|
'--lowlat-syscalls=-[improve thread syscall wake-up latency]:enable:(yes no)' \
|
|
'--pointercheck=-[enforce client address space limits]:enable:(yes no)' \
|
|
'--log-fd=-[log messages to specified file descriptor]:file descriptor:_file_descriptors' \
|
|
'--log-file=-[log messages to specified file]:file:_files' \
|
|
'--log-socket=-[log messages to socket]:ipaddr\:port' \
|
|
'--demangle=-[automatically demangle C++ names]:enable:(yes no)' \
|
|
'--num-callers=-[specify no of callers to show in stack traces]:number' \
|
|
'--error-limit=-[stop showing new errors if too many]:enable:(yes no)' \
|
|
'--show-below-main=-[continue stack traces below main()]:enable:(yes no)' \
|
|
'--suppressions=-[suppress errors described in specified file]:file:_files' \
|
|
'--gen-suppressions=-[print suppressions for errors detected]:enable:(yes no)' \
|
|
'--db-attach=-[start debugger when errors detected]:enable:(yes no)' \
|
|
'--db-command=-[specify command to start debugger]:command:_command_names -e' \
|
|
'--input-fd=-[specify file descriptor for input]:file descriptor:_file_descriptors' && return
|
|
|
|
if [[ -n "$state" ]]; then
|
|
_wanted tools exl 'valgrind tool' compadd ${=${${(f)"$(_call_program \
|
|
tools valgrind --tool= 2>&1)"}[(r)Available*,-1]}[2,-1]} && return
|
|
fi
|
|
|
|
return 1
|