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