vim-patch:8.2.2985: Vim9: a compiled function cannot be debugged

Problem:    Vim9: a compiled function cannot be debugged.
Solution:   Add initial debugging support.

e99d422bbd

Co-authored-by: Bram Moolenaar <Bram@vim.org>
This commit is contained in:
zeertzjq 2023-11-13 06:34:43 +08:00
parent 03c3f7887d
commit 5ce3b89ff3

View File

@ -923,19 +923,20 @@ func Test_Backtrace_DefFunction()
\ ':debug call GlobalFunction()', \ ':debug call GlobalFunction()',
\ ['cmd: call GlobalFunction()']) \ ['cmd: call GlobalFunction()'])
" FIXME: Vim9 lines are not debugged! call RunDbgCmd(buf, 'step', ['line 1: CallAFunction()'])
call RunDbgCmd(buf, 'step', ['line 1: source Xtest2.vim'])
" But they do appear in the backtrace " FIXME: not quite right
call RunDbgCmd(buf, 'backtrace', [ call RunDbgCmd(buf, 'backtrace', [
\ '\V>backtrace', \ '\V>backtrace',
\ '\V 2 function GlobalFunction[1]', \ '\V->0 function GlobalFunction',
\ '\V 1 <SNR>\.\*_CallAFunction[1]', \ '\Vline 1: CallAFunction()',
\ '\V->0 <SNR>\.\*_SourceAnotherFile', \ ],
\ '\Vline 1: source Xtest2.vim'],
\ #{match: 'pattern'}) \ #{match: 'pattern'})
call RunDbgCmd(buf, 'step', ['line 1: SourceAnotherFile()'])
call RunDbgCmd(buf, 'step', ['line 1: source Xtest2.vim'])
" FIXME: repeated line
call RunDbgCmd(buf, 'step', ['line 1: source Xtest2.vim'])
call RunDbgCmd(buf, 'step', ['line 1: vim9script']) call RunDbgCmd(buf, 'step', ['line 1: vim9script'])
call RunDbgCmd(buf, 'step', ['line 3: def DoAThing(): number']) call RunDbgCmd(buf, 'step', ['line 3: def DoAThing(): number'])
call RunDbgCmd(buf, 'step', ['line 9: export def File2Function()']) call RunDbgCmd(buf, 'step', ['line 9: export def File2Function()'])
@ -952,7 +953,7 @@ func Test_Backtrace_DefFunction()
\ #{match: 'pattern'}) \ #{match: 'pattern'})
" Don't step into compiled functions... " Don't step into compiled functions...
call RunDbgCmd(buf, 'step', ['line 15: End of sourced file']) call RunDbgCmd(buf, 'next', ['line 15: End of sourced file'])
call RunDbgCmd(buf, 'backtrace', [ call RunDbgCmd(buf, 'backtrace', [
\ '\V>backtrace', \ '\V>backtrace',
\ '\V 3 function GlobalFunction[1]', \ '\V 3 function GlobalFunction[1]',
@ -962,7 +963,6 @@ func Test_Backtrace_DefFunction()
\ '\Vline 15: End of sourced file'], \ '\Vline 15: End of sourced file'],
\ #{match: 'pattern'}) \ #{match: 'pattern'})
call StopVimInTerminal(buf) call StopVimInTerminal(buf)
call delete('Xtest1.vim') call delete('Xtest1.vim')
call delete('Xtest2.vim') call delete('Xtest2.vim')
@ -1156,6 +1156,7 @@ func Test_debug_backtrace_level()
\ [ 'E121: Undefined variable: s:file1_var' ] ) \ [ 'E121: Undefined variable: s:file1_var' ] )
call RunDbgCmd(buf, 'echo s:file2_var', [ 'file2' ] ) call RunDbgCmd(buf, 'echo s:file2_var', [ 'file2' ] )
call RunDbgCmd(buf, 'cont')
call StopVimInTerminal(buf) call StopVimInTerminal(buf)
call delete('Xtest1.vim') call delete('Xtest1.vim')
call delete('Xtest2.vim') call delete('Xtest2.vim')