Merge pull request #78111 from sbarkeha/master

Fix infinite loop on EOF in the command line debugger
This commit is contained in:
Rémi Verschelde 2023-06-12 14:15:54 +02:00
commit e95decf343
No known key found for this signature in database
GPG key ID: C3336907360768E1

View file

@ -138,7 +138,7 @@ void LocalDebugger::debug(bool p_can_continue, bool p_is_error_breakpoint) {
// Cache options // Cache options
String variable_prefix = options["variable_prefix"]; String variable_prefix = options["variable_prefix"];
if (line.is_empty()) { if (line.is_empty() && !feof(stdin)) {
print_line("\nDebugger Break, Reason: '" + script_lang->debug_get_error() + "'"); print_line("\nDebugger Break, Reason: '" + script_lang->debug_get_error() + "'");
print_line("*Frame " + itos(current_frame) + " - " + script_lang->debug_get_stack_level_source(current_frame) + ":" + itos(script_lang->debug_get_stack_level_line(current_frame)) + " in function '" + script_lang->debug_get_stack_level_function(current_frame) + "'"); print_line("*Frame " + itos(current_frame) + " - " + script_lang->debug_get_stack_level_source(current_frame) + ":" + itos(script_lang->debug_get_stack_level_line(current_frame)) + " in function '" + script_lang->debug_get_stack_level_function(current_frame) + "'");
print_line("Enter \"help\" for assistance."); print_line("Enter \"help\" for assistance.");
@ -267,7 +267,8 @@ void LocalDebugger::debug(bool p_can_continue, bool p_is_error_breakpoint) {
print_line("Added breakpoint at " + source + ":" + itos(linenr)); print_line("Added breakpoint at " + source + ":" + itos(linenr));
} }
} else if (line == "q" || line == "quit") { } else if (line == "q" || line == "quit" ||
(line.is_empty() && feof(stdin))) {
// Do not stop again on quit // Do not stop again on quit
script_debugger->clear_breakpoints(); script_debugger->clear_breakpoints();
script_debugger->set_depth(-1); script_debugger->set_depth(-1);