view src/testdir/test108.in @ 16003:879829e44091 v8.1.1007

patch 8.1.1007: using closure may consume a lot of memory commit https://github.com/vim/vim/commit/209b8e3e3bf7a4a3d102134124120f6c7f57d560 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Mar 14 13:43:24 2019 +0100 patch 8.1.1007: using closure may consume a lot of memory Problem: Using closure may consume a lot of memory. Solution: unreference items that are no longer needed. Add a test. (Ozaki Kiichi, closes #3961)
author Bram Moolenaar <Bram@vim.org>
date Thu, 14 Mar 2019 13:45:06 +0100
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