changeset 27761:223981108144

fix stack frame location info when using debugger (bug #57315) * pt-eval.cc (tree_evaluator::visit_statement, tree_evaluator::visit_if_command_list): Set current location in call stack when when in debug repl or when current frame is different from debug frame instead of when m_statement_context is SC_FUNCTION or SC_SCRIPT.
author John W. Eaton <jwe@octave.org>
date Fri, 29 Nov 2019 15:42:34 -0600
parents 16e83787f970
children 80d68a3e8ec0
files libinterp/parse-tree/pt-eval.cc
diffstat 1 files changed, 4 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/parse-tree/pt-eval.cc	Sun Dec 01 19:51:35 2019 -0600
+++ b/libinterp/parse-tree/pt-eval.cc	Fri Nov 29 15:42:34 2019 -0600
@@ -2562,8 +2562,8 @@
       {
         tree_expression *expr = tic->condition ();
 
-        if (m_statement_context == SC_FUNCTION
-            || m_statement_context == SC_SCRIPT)
+        if (! (in_debug_repl ()
+               && m_call_stack.current_frame () == m_debug_frame))
           m_call_stack.set_location (tic->line (), tic->column ());
 
         if (m_debug_mode && ! tic->is_else_clause ())
@@ -2692,8 +2692,8 @@
 
     if (cmd || expr)
       {
-        if (m_statement_context == SC_FUNCTION
-            || m_statement_context == SC_SCRIPT)
+        if (! (in_debug_repl ()
+               && m_call_stack.current_frame () == m_debug_frame))
           m_call_stack.set_location (stmt.line (), stmt.column ());
 
         try