blob: b442cf7fcf80eac60712bdd277706a295585c501 [file] [log] [blame]
Bram Moolenaarf1f60f82016-01-16 15:40:53 +01001Tests for backtrace debug commands. vim: set ft=vim :
2
3STARTTEST
4:so small.vim
5:function! Foo()
6: let var1 = 1
7: let var2 = Bar(var1) + 9
8: return var2
9:endfunction
10:
11:function! Bar(var)
12: let var1 = 2 + a:var
13: let var2 = Bazz(var1) + 4
14: return var2
15:endfunction
16:
17:function! Bazz(var)
18: let var1 = 3 + a:var
19: let var3 = "another var"
20: return var1
21:endfunction
22:new
23:debuggreedy
24:redir => out
25:debug echo Foo()
26step
27step
28step
29step
30step
31step
32echo "- show backtrace:\n"
33backtrace
34echo "\nshow variables on different levels:\n"
35echo var1
36up
37back
38echo var1
39u
40bt
41echo var1
42echo "\n- undefined vars:\n"
43step
44frame 2
45echo "undefined var3 on former level:"
46echo var3
47fr 0
48echo "here var3 is defined with \"another var\":"
49echo var3
50step
51step
52step
53up
54echo "\nundefined var2 on former level"
55echo var2
56down
57echo "here var2 is defined with 10:"
58echo var2
59echo "\n- backtrace movements:\n"
60b
61echo "\nnext command cannot go down, we are on bottom\n"
62down
63up
64echo "\nnext command cannot go up, we are on top\n"
65up
66b
67echo "fil is not frame or finish, it is file"
68fil
69echo "\n- relative backtrace movement\n"
70fr -1
71frame
72fra +1
73fram
74echo "\n- go beyond limits does not crash\n"
75fr 100
76fra
77frame -40
78fram
79echo "\n- final result 19:"
80cont
81:0debuggreedy
82:redir END
83:$put =out
84:w! test.out
85:qa!
86ENDTEST
87