1
0
forked from aniani/vim

patch 8.2.3027: Vim9: breakpoint in compiled function not always checked

Problem:    Vim9: breakpoint in compiled function not always checked.
Solution:   Check for breakpoint when calling compiled function from compiled
            function.
This commit is contained in:
Bram Moolenaar 2021-06-20 20:09:42 +02:00
parent 4f8f54280f
commit 2ac4b2536a
3 changed files with 27 additions and 0 deletions

View File

@ -940,7 +940,22 @@ func Test_debug_DefFunction()
echo "here"
echo "and"
echo "there"
breakadd func 2 LocalFunc
LocalFunc()
enddef
def LocalFunc()
echo "first"
echo "second"
breakadd func 1 LegacyFunc
LegacyFunc()
enddef
func LegacyFunc()
echo "legone"
echo "legtwo"
endfunc
breakadd func 2 g:SomeFunc
END
call writefile(file, 'XtestDebug.vim')
@ -949,6 +964,13 @@ func Test_debug_DefFunction()
call RunDbgCmd(buf,':call SomeFunc()', ['line 2: echo "and"'])
call RunDbgCmd(buf,'next', ['line 3: echo "there"'])
call RunDbgCmd(buf,'next', ['line 4: breakadd func 2 LocalFunc'])
" continue, next breakpoint is in LocalFunc()
call RunDbgCmd(buf,'cont', ['line 2: echo "second"'])
" continue, next breakpoint is in LegacyFunc()
call RunDbgCmd(buf,'cont', ['line 1: echo "legone"'])
call RunDbgCmd(buf, 'cont')

View File

@ -755,6 +755,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
3027,
/**/
3026,
/**/

View File

@ -229,6 +229,9 @@ call_dfunc(
}
#endif
// Update uf_has_breakpoint if needed.
update_has_breakpoint(ufunc);
// When debugging and using "cont" switches to the not-debugged
// instructions, may need to still compile them.
if ((func_needs_compiling(ufunc, COMPILE_TYPE(ufunc))