1%test
2
3  print 'print In sourced file
4  print $LINENO + $functrace + $funcsourcetrace
5  ' >sourcedfile
6  print -r -- 'print Started functrace.zsh
7  module_path=(./Modules)
8  print $LINENO + $functrace + $funcsourcetrace
9  :
10  fn() {
11    print Inside function $0
12    print $LINENO + $functrace + $funcsourcetrace
13  }
14  :
15  fn
16  :
17  fpath=(. $fpath)
18  :
19  echo '\''print Inside $0
20    print $LINENO + $functrace + $funcsourcetrace
21  '\'' >autofn
22  :
23  autoload autofn
24  :
25  autofn
26  autofn
27  . ./sourcedfile' >functrace.zsh
28  $ZTST_testdir/../Src/zsh +Z -f ./functrace.zsh
290:Function tracing
30>Started functrace.zsh
31>3 + +
32>Inside function fn
33>2 + ./functrace.zsh:10 + ./functrace.zsh:5
34>Inside autofn
35>2 + ./functrace.zsh:20 + ./autofn:0
36>Inside autofn
37>2 + ./functrace.zsh:21 + ./autofn:0
38>In sourced file
39>2 + ./functrace.zsh:22 + ./sourcedfile:0
40
41  print -r -- 'module_path=(./Modules)
42  debug_hook() { print $funcfiletrace[1] $functrace[1]; }
43  set -o DEBUG_BEFORE_CMD
44  trap "debug_hook" DEBUG
45  fn() {
46    a=1
47    eval "b=2"
48    c=3
49  }
50  fn
51  w=5
52  eval "x=6
53  y=7"
54  z=8' >rocky3.zsh
55  $ZTST_testdir/../Src/zsh +Z -f ./rocky3.zsh
560:Eval tracing
57>./rocky3.zsh:5 ./rocky3.zsh:5
58>./rocky3.zsh:10 ./rocky3.zsh:10
59>./rocky3.zsh:6 fn:1
60>./rocky3.zsh:7 fn:2
61>./rocky3.zsh:7 (eval):1
62>./rocky3.zsh:8 fn:3
63>./rocky3.zsh:11 ./rocky3.zsh:11
64>./rocky3.zsh:12 ./rocky3.zsh:12
65>./rocky3.zsh:12 (eval):1
66>./rocky3.zsh:13 (eval):2
67>./rocky3.zsh:14 ./rocky3.zsh:14
68
69%clean
70
71 rm -f autofn functrace.zsh rocky3.zsh sourcedfile
72