diff src/main.c @ 12678:116b7394b8af v8.0.1217

patch 8.0.1217: can't use remote eval to inspect vars in debug mode commit https://github.com/vim/vim/commit/d99388ba8535a6fecf7d0bf7b982832c0b816062 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Oct 26 14:28:32 2017 +0200 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 https://github.com/vim/vim/issues/2237, https://github.com/vim/vim/issues/2247)
author Christian Brabandt <cb@256bit.org>
date Thu, 26 Oct 2017 14:30:04 +0200
parents e769c912fcd9
children 351cf7c67bbe
line wrap: on
line diff
--- a/src/main.c
+++ b/src/main.c
@@ -4180,11 +4180,12 @@ eval_client_expr_to_string(char_u *expr)
     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 @@ eval_client_expr_to_string(char_u *expr)
     --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. */