diff --git a/src/debugger.c b/src/debugger.c
index 1e28d66..fc0aa03 100644
--- a/src/debugger.c
+++ b/src/debugger.c
@@ -531,6 +531,29 @@
 static linenr_T debuggy_find(int file,char_u *fname, linenr_T after, garray_T *gap, int *fp);
 
 /*
+ * Evaluate the "bp->dbg_name" expression and return the result.
+ * Restore the got_int and called_emsg flags.
+ */
+    static typval_T *
+eval_expr_restore(struct debuggy *bp)
+{
+    typval_T	*tv;
+    int		prev_called_emsg = called_emsg;
+    int		prev_did_emsg = did_emsg;
+
+    got_int = FALSE;
+    tv = eval_expr(bp->dbg_name, NULL);
+
+    // Evaluating the expression should not result in breaking the sequence of
+    // commands.
+    got_int = FALSE;
+    called_emsg = prev_called_emsg;
+    did_emsg = prev_did_emsg;
+
+    return tv;
+}
+
+/*
  * Parse the arguments of ":profile", ":breakadd" or ":breakdel" and put them
  * in the entry just after the last one in dbg_breakp.  Note that "dbg_name"
  * is allocated.
@@ -614,7 +637,7 @@
     {
 	bp->dbg_name = vim_strsave(p);
 	if (bp->dbg_name != NULL)
-	    bp->dbg_val = eval_expr(bp->dbg_name, NULL);
+	    bp->dbg_val = eval_expr_restore(bp);
     }
     else
     {
@@ -960,10 +983,7 @@
 	    typval_T *tv;
 	    int	      line = FALSE;
 
-	    prev_got_int = got_int;
-	    got_int = FALSE;
-
-	    tv = eval_expr(bp->dbg_name, NULL);
+	    tv = eval_expr_restore(bp);
 	    if (tv != NULL)
 	    {
 		if (bp->dbg_val == NULL)
@@ -984,7 +1004,7 @@
 			debug_oldval = typval_tostring(bp->dbg_val, TRUE);
 			// Need to evaluate again, typval_compare() overwrites
 			// "tv".
-			v = eval_expr(bp->dbg_name, NULL);
+			v = eval_expr_restore(bp);
 			debug_newval = typval_tostring(v, TRUE);
 			free_tv(bp->dbg_val);
 			bp->dbg_val = v;
@@ -1006,8 +1026,6 @@
 		lnum = after > 0 ? after : 1;
 		break;
 	    }
-
-	    got_int |= prev_got_int;
 	}
 #endif
     }
diff --git a/src/testdir/test_debugger.vim b/src/testdir/test_debugger.vim
index 85ab6ea..71fdedc 100644
--- a/src/testdir/test_debugger.vim
+++ b/src/testdir/test_debugger.vim
@@ -318,7 +318,9 @@
   call RunDbgCmd(buf, 'enew! | only!')
 
   call StopVimInTerminal(buf)
+endfunc
 
+func Test_Debugger_breakadd()
   " Tests for :breakadd file and :breakadd here
   " Breakpoints should be set before sourcing the file
 
@@ -342,10 +344,37 @@
 
   call delete('Xtest.vim')
   %bw!
+
   call assert_fails('breakadd here', 'E32:')
   call assert_fails('breakadd file Xtest.vim /\)/', 'E55:')
 endfunc
 
+def Test_Debugger_breakadd_expr()
+  var lines =<< trim END
+      vim9script
+      func g:EarlyFunc()
+      endfunc
+      breakadd expr DoesNotExist()
+      func g:LaterFunc()
+      endfunc
+      breakdel *
+  END
+  writefile(lines, 'Xtest.vim')
+
+  # Start Vim in a terminal
+  var buf = RunVimInTerminal('-S Xtest.vim', {wait_for_ruler: 0})
+  call TermWait(buf)
+
+  # Despite the failure the functions are defined
+  RunDbgCmd(buf, ':function g:EarlyFunc',
+     ['function EarlyFunc()', 'endfunction'], {match: 'pattern'})
+  RunDbgCmd(buf, ':function g:LaterFunc',
+     ['function LaterFunc()', 'endfunction'], {match: 'pattern'})
+
+  call StopVimInTerminal(buf)
+  call delete('Xtest.vim')
+enddef
+
 func Test_Backtrace_Through_Source()
   CheckCWD
   let file1 =<< trim END
diff --git a/src/version.c b/src/version.c
index c28a302..41b79a7 100644
--- a/src/version.c
+++ b/src/version.c
@@ -756,6 +756,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3417,
+/**/
     3416,
 /**/
     3415,
