view src/testdir/test108.in @ 9858:3e96d9ed2ca1 v7.4.2204

commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f Author: Bram Moolenaar <Bram@vim.org> Date: Fri Aug 12 22:23:25 2016 +0200 patch 7.4.2204 Problem: It is not easy to get information about buffers, windows and tabpages. Solution: Add getbufinfo(), getwininfo() and gettabinfo(). (Yegappan Lakshmanan)
author Christian Brabandt <cb@256bit.org>
date Fri, 12 Aug 2016 22:30:07 +0200
parents 503534e56ce1
children
line wrap: on
line source

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