changeset 27293:9dcbc0a449af

correctly set debug_frame when using "keyboard" (bug #56625) * pt-eval.cc (tree_evaluator::enter_debugger): Set m_debug_frame from result of call to call_stack::dbupdown instead of setting it to current frame, which may be the call to a function like "keyboard".
author John W. Eaton <jwe@octave.org>
date Wed, 24 Jul 2019 12:34:47 -0400
parents 0a2e5c808709
children 9b053ba971b2
files libinterp/parse-tree/pt-eval.cc
diffstat 1 files changed, 2 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/parse-tree/pt-eval.cc	Wed Jul 24 07:47:33 2019 +0200
+++ b/libinterp/parse-tree/pt-eval.cc	Wed Jul 24 12:34:47 2019 -0400
@@ -1158,7 +1158,8 @@
     es.debug_on_warning (false);
 
     // Go up to the nearest user code frame.
-    m_call_stack.dbupdown (0);
+
+    m_debug_frame = m_call_stack.dbupdown (0);
 
     // FIXME: probably we just want to print one line, not the
     // entire statement, which might span many lines...
@@ -1170,8 +1171,6 @@
 
     debugger *dbgr = new debugger (m_interpreter, m_debugger_stack.size ());
 
-    m_debug_frame = m_call_stack.current_frame ();
-
     m_debugger_stack.push (dbgr);
 
     frame.add ([this] (void)