patch 8.0.1217: can't use remote eval to inspect vars in debug mode
Problem: Can't use remote eval to inspect vars in debug mode.
Solution: Don't discard the call stack in debug mode. (closes #2237, #2247)
diff --git a/src/main.c b/src/main.c
index 0dad4d6..0283231 100644
--- a/src/main.c
+++ b/src/main.c
@@ -4180,11 +4180,12 @@
char_u *res;
int save_dbl = debug_break_level;
int save_ro = redir_off;
- void *fc;
+ void *fc = NULL;
/* Evaluate the expression at the toplevel, don't use variables local to
- * the calling function. */
- fc = clear_current_funccal();
+ * the calling function. Except when in debug mode. */
+ if (!debug_mode)
+ fc = clear_current_funccal();
/* Disable debugging, otherwise Vim hangs, waiting for "cont" to be
* typed. */
@@ -4201,7 +4202,8 @@
--emsg_silent;
if (emsg_silent < 0)
emsg_silent = 0;
- restore_current_funccal(fc);
+ if (fc != NULL)
+ restore_current_funccal(fc);
/* A client can tell us to redraw, but not to display the cursor, so do
* that here. */