summaryrefslogtreecommitdiffstats
path: root/src/testdir/test108.in
diff options
context:
space:
mode:
Diffstat (limited to 'src/testdir/test108.in')
-rw-r--r--src/testdir/test108.in88
1 files changed, 88 insertions, 0 deletions
diff --git a/src/testdir/test108.in b/src/testdir/test108.in
new file mode 100644
index 0000000..59c4dfc
--- /dev/null
+++ b/src/testdir/test108.in
@@ -0,0 +1,88 @@
+Tests for backtrace debug commands. vim: set ft=vim :
+
+STARTTEST
+:so small.vim
+:lang mess C
+:function! Foo()
+: let var1 = 1
+: let var2 = Bar(var1) + 9
+: return var2
+:endfunction
+:
+:function! Bar(var)
+: let var1 = 2 + a:var
+: let var2 = Bazz(var1) + 4
+: return var2
+:endfunction
+:
+:function! Bazz(var)
+: let var1 = 3 + a:var
+: let var3 = "another var"
+: return var1
+:endfunction
+:new
+:debuggreedy
+:redir => out
+:debug echo Foo()
+step
+step
+step
+step
+step
+step
+echo "- show backtrace:\n"
+backtrace
+echo "\nshow variables on different levels:\n"
+echo var1
+up
+back
+echo var1
+u
+bt
+echo var1
+echo "\n- undefined vars:\n"
+step
+frame 2
+echo "undefined var3 on former level:"
+echo var3
+fr 0
+echo "here var3 is defined with \"another var\":"
+echo var3
+step
+step
+step
+up
+echo "\nundefined var2 on former level"
+echo var2
+down
+echo "here var2 is defined with 10:"
+echo var2
+echo "\n- backtrace movements:\n"
+b
+echo "\nnext command cannot go down, we are on bottom\n"
+down
+up
+echo "\nnext command cannot go up, we are on top\n"
+up
+b
+echo "fil is not frame or finish, it is file"
+fil
+echo "\n- relative backtrace movement\n"
+fr -1
+frame
+fra +1
+fram
+echo "\n- go beyond limits does not crash\n"
+fr 100
+fra
+frame -40
+fram
+echo "\n- final result 19:"
+cont
+:0debuggreedy
+:redir END
+:$put =out
+:w! test.out
+:qa!
+ENDTEST
+