zsh-workers
 help / color / mirror / code / Atom feed
bb51931634fac8d5ad357930e9e880c483380377 blob 5315 bytes (raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
 
#compdef dtrace

local curcontext="$curcontext" ret=1
local -a state line args

case $OSTYPE in
  ^darwin*)
    args=(
      '-32[generate 32-bit D programs and ELF files]'
      '-64[generate 64-bit D programs and ELF files]'
      '(-A -h -l -V)-G[generate an ELF file containing embedded dtrace program]'
    )
  ;;
  darwin*)
    args=(
      '*-W[wait for the named process to launch]:name'
    )
  ;;
esac

_arguments -C -s $args \
  '-a[claim anonymous tracing state]' \
  '(-G -h -l -V)-A[generate driver.conf(4) directives for anonymous tracing]' \
  '-b+[set trace buffer size]:size' \
  '*-c+[run specified command and exit upon its completion]:command' \
  '-C[run cpp(1) preprocessor on script files]' \
  '*-D+[define symbol when invoking preprocessor]:name' \
  '-e[exit after compiling request but prior to enabling probes]' \
  '-f+[enable or list probes matching the specified function name]:function:->functions' \
  '-F[coalesce trace output by function]' \
  '-H[print included files when invoking preprocessor]' \
  '(-A -G -l -V)-h[generate a header file]' \
  '*-i+[enable or list probes matching the specified probe id]:probe-id' \
  '-I+[add include directory to preprocessor search path]:path:_directories' \
  '(-A -G -h -V)-l[list probes instead of enabling them]' \
  '-L+[add directory to search path for DTrace libraries]:path:_directories' \
  '*-m+[trace or list probes matching the specified module name]:module:->modules' \
  '*-n+[trace or list probes matching the specified probe name]:name:->probes' \
  '-o+[set output file]:output file:_files' \
  '-p+[grab specified process-ID and cache its symbol tables]:pid:_pids' \
  '*-P+[trace or list probes matching the specified provider name]:provider:->providers' \
  '-q[set quiet mode (only output explicitly traced data)]' \
  '*-s+[enable or list probes according to the specified D script]:script file:_files' \
  '-S[print D compiler intermediate code]' \
  '*-U+[undefine symbol when invoking preprocessor]:name' \
  '-v[set verbose mode (report program stability attributes)]' \
  '(-A -G -h -l)-V[report DTrace API version]' \
  '-w[permit destructive actions]' \
  '*-x+[enable or modify compiler and tracing options]: : _values option
    "aggrate[rate of aggregation reading]\:time"
    "aggsize[aggregation buffer size]\:size"
    "ustackframes[number of user stack frames]\:scalar"
    "bufpolicy[specify the buffer policy for the principal buffer]\:policy\:(fill switch ring)"
    "bufresize[buffer resizing policy]\:policy\:(auto manual)"
    "bufsize[size of the per-CPU principal buffer]\:size"
    "cleanrate[cleaning rate (hz)]\:time"
    "cpu[specify the CPU on which to enable tracing]\:scalar"
    "defaultargs[allow references to unspecified macro arguments]"
    "destructive[allow destructive actions]"
    "dynvarsize[size of the dynamic variable space]\:size"
    "flowindent[turn on flow indentation]"
    "grabanon[claim anonymous state]"
    "jstackframes[number of default stack frames for jstack()]\:scalar"
    "jstackstrsize[default string space size for jstack()]\:scalar"
    "nspec[number of speculations]\:scalar"
    "quiet[set quiet mode]"
    "specsize[size of the speculation buffer]\:size"
    "strsize[maximum size of strings]\:size"
    "stackframes[maximum number of kernelspace stack frames to unwind for stack()]\:scalar"
    "stackindent[whitespace characters to use when indenting stack() and ustack() output]\:scalar"
    "statusrate[rate of status checking]\:time"
    "switchrate[rate of buffer switching]\:time"
    "ustackframes[maximum number of userspace stack frames to unwind for ustack()]\:scalar"' \
  '-X+[specify ISO C conformance settings for preprocessor]:ISO C conformance:((a\:"ISO plus K&R extensions (default)" c\:"Strictly conformant ISO C" s\:"K&R C only" t\:"ISO plus K&R extensions"))' \
  '-Z[permit probe descriptions that match zero probes]' && return

if [[ -n $state ]]; then
  local -a fields=( providers modules functions probes )
  local -a suf=( : : : )
  typeset -ga _cache_dtrace_probes
  (( $#_cache_dtrace_probes )) || _cache_dtrace_probes=(
      ${${${${(f)"$(_call_program dtrace-probes dtrace -l)"}[2,-1]}:#*[:[]}/(#b) #<-> #([^ ]#) #([^ ]#) #([^ ]#) ##([^ ]##)/${match[1]}:${match[3]:+$match[2]}:${match[3]:-$match[2]}:$match[4]}
  ) # filtering out those containing : and [, they occur on macos but may just be unmangled forms and not directly usable
  suf[${fields[(i)$state]}]=( "${compstate[quote][-1]} " ) # field matching the state gets a space suffix
  while compset -P 1 '*:'; do
    shift fields # each already listed field reduces one being possible
  done
  _tags dtrace-${^fields[1,(r)$state]}
  while _tags; do
    _requested dtrace-probes expl 'probe name' compadd -S "$suf[4]" - ${${(M)_cache_dtrace_probes:#((#s)|*:)${IPREFIX}[^:]#(#e)}##*:} && ret=0
    _requested dtrace-functions expl 'function' compadd -S "$suf[3]" - ${${${(M)_cache_dtrace_probes:#((#s)|*:)${IPREFIX}[^:]#:[^:]#(#e)}%:*}##*:} && ret=0
    _requested dtrace-modules expl 'module' compadd -S "$suf[2]" - ${${${(M)_cache_dtrace_probes:#((#s)|*:)${IPREFIX}[^:]#:[^:]#:[^:]#(#e)}#*:}%%:*} && ret=0
    _requested dtrace-providers expl 'provider' compadd -S "$suf[1]" - ${_cache_dtrace_probes%%:*} && ret=0

    (( ret )) || return 0
  done
fi

return 1
debug log:

solving bb5193163 ...
found bb5193163 in https://inbox.vuxu.org/zsh-workers/35706-1616539392.227174@49wn.5333.Rj93/
found a095589eb in https://git.vuxu.org/mirror/zsh/
preparing index
index prepared:
100644 a095589ebc66945ca16a1107dc5288b1cac195a8	Completion/Solaris/Command/_dtrace

applying [1/1] https://inbox.vuxu.org/zsh-workers/35706-1616539392.227174@49wn.5333.Rj93/
diff --git a/Completion/Solaris/Command/_dtrace b/Completion/Solaris/Command/_dtrace
index a095589eb..bb5193163 100644

Checking patch Completion/Solaris/Command/_dtrace...
Applied patch Completion/Solaris/Command/_dtrace cleanly.

index at:
100644 bb51931634fac8d5ad357930e9e880c483380377	Completion/Solaris/Command/_dtrace

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).