patch 8.2.3395: Vim9: expression breakpoint not checked in :def function
Problem: Vim9: expression breakpoint not checked in :def function.
Solution: Always compile a function for debugging if there is an expression
breakpoint. (closes #8803)
diff --git a/src/vim9execute.c b/src/vim9execute.c
index 4562a08..fdca977 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -1483,6 +1483,16 @@
return NULL;
}
+/*
+ * Return TRUE if there might be a breakpoint in "ufunc", which is when a
+ * breakpoint was set in that function or when there is any expression.
+ */
+ int
+may_break_in_function(ufunc_T *ufunc)
+{
+ return ufunc->uf_has_breakpoint || debug_has_expr_breakpoint();
+}
+
static void
handle_debug(isn_T *iptr, ectx_T *ectx)
{
@@ -1498,7 +1508,7 @@
{
linenr_T breakpoint;
- if (!ufunc->uf_has_breakpoint)
+ if (!may_break_in_function(ufunc))
return;
// check for the next breakpoint if needed