mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-07-15 18:11:25 +02:00
The --arguments are space (` `) separated, not equal-sign (`=`) separated. lldb --correct c_arg --wrong=w_arg
56 lines
2.6 KiB
Text
56 lines
2.6 KiB
Text
#compdef lldb
|
|
|
|
local curcontext=$curcontext state state_descr line expl ret=1
|
|
typeset -A opt_args
|
|
typeset -a opts args
|
|
[[ $EUID = 0 || $_comp_priv_prefix[1] = sudo ]] && opts=( -a )
|
|
|
|
args=(
|
|
'*'{-o+,--one-line}'[run one-line lldb command after loading executable]:lldb command: '
|
|
'*'{-s+,--source}'[run lldb commands from a file after loading executable]:file:_files'
|
|
'*'{-O+,--one-line-before-file}'[run one-line lldb command before loading executable]:lldb command'
|
|
'*'{-S+,--source-before-file}'[run lldb commands from a file before loading executable]:file:_files'
|
|
'(-k --one-line-on-crash)'{-k+,--one-line-on-crash}'[run one-line lldb command if target crashes in batch mode]:lldb command'
|
|
'(-K --source-on-crash)'{-K+,--source-on-crash}'[run lldb commands from a file if target crashes in batch mode]:file:_files'
|
|
'(-b --batch)'{-b,--batch}'[run commands from -s -S -o -O and quit]'
|
|
'(-Q --source-quietly)'{-Q,--source-quietly}'[suppress output from -s, -S, -o or -O]'
|
|
'(-e --editor)'{-e,--editor}'[open source files using "external editor" mechanism]'
|
|
'(-x --no-lldbinit)'{-x,--no-lldbinit}'[do not automatically parse .lldbinit files]'
|
|
'(-X --no-use-colors)'{-X,--no-use-colors}'[do not use colors]'
|
|
'(-d --debug)'{-d,--debug}'[print extra information for debugging itself]'
|
|
'(-r --repl)'{-r,--repl}'[run lldb in REPL mode]'
|
|
'(-l --script-language)'{-l+,--script-language}'[use the specified scripting language]:language:(Python Perl Ruby Tcl)'
|
|
- info
|
|
'(-)'{-h,--help}'[print the usage information]'
|
|
'(-)'{-v,--version}'[print the current version number]'
|
|
'(-)'{-P,--python-path}'[print path to the lldb.py file]'
|
|
- file
|
|
'(-f --file)'{-f+,--file}'[specify executable file to debug]:executable:_files -g "*(-*)"'
|
|
'(-a --arch)'{-a+,--arch}'[use the specified architecture]:arch'
|
|
'(-c --core)'{-c+,--core}'[specify core file to open]:core file:_files -g "*core*(-.)"'
|
|
'*::executable and arguments:->exe_args'
|
|
- name
|
|
'(-n --attach-name)'{-n+,--attach-name}"[attach to the named process]: :_process_names $opts"
|
|
'(-w --wait-for)'{-w,--wait-for}'[wait for the specified process to launch]'
|
|
- pid
|
|
'(-p --attach-pid)'{-p+,--attach-pid}'[attach to the specified process]:pid:_pids'
|
|
)
|
|
|
|
_arguments -C -s -S : $args && return 0
|
|
|
|
case $state in
|
|
(exe_args)
|
|
if [[ -z $opt_args[(I)file-(-f|--file)] ]]; then
|
|
if [[ $CURRENT -eq 1 ]]; then
|
|
_wanted executables expl 'executable' _files -g '*(-*)' && ret=0
|
|
else
|
|
_normal && ret=0
|
|
fi
|
|
else
|
|
words=( ${(v)opt_args[(i)file-(-f|--file)]} "$words[@]" )
|
|
(( CURRENT++ ))
|
|
_normal && ret=0
|
|
fi
|
|
esac
|
|
|
|
return ret
|