mirror of
https://github.com/Relintai/pandemonium_engine.git
synced 2024-11-22 00:48:09 +01:00
Fix infinite loop on EOF in the command line debugger
When using the command line debugger (godot -d) on Unix systems, when entering an EOF (ctrl+D), the debugger enters an infinite loop. Adding a check for EOF in the debugger loop exits the debugger when EOF is entered. Fixes #50170. (cherry picked from commit 4ecad8dea30859a5acbac41fe0e647c7bb6a53cc)
This commit is contained in:
parent
f80e276363
commit
12eba08f8c
@ -56,7 +56,7 @@ void ScriptDebuggerLocal::debug(ScriptLanguage *p_script, bool p_can_continue, b
|
||||
// Cache options
|
||||
String variable_prefix = options["variable_prefix"];
|
||||
|
||||
if (line == "") {
|
||||
if (line.empty() && !feof(stdin)) {
|
||||
print_line("\nDebugger Break, Reason: '" + p_script->debug_get_error() + "'");
|
||||
print_line("*Frame " + itos(current_frame) + " - " + p_script->debug_get_stack_level_source(current_frame) + ":" + itos(p_script->debug_get_stack_level_line(current_frame)) + " in function '" + p_script->debug_get_stack_level_function(current_frame) + "'");
|
||||
print_line("Enter \"help\" for assistance.");
|
||||
@ -185,7 +185,7 @@ void ScriptDebuggerLocal::debug(ScriptLanguage *p_script, bool p_can_continue, b
|
||||
print_line("Added breakpoint at " + source + ":" + itos(linenr));
|
||||
}
|
||||
|
||||
} else if (line == "q" || line == "quit") {
|
||||
} else if (line == "q" || line == "quit" || (line.empty() && feof(stdin))) {
|
||||
// Do not stop again on quit
|
||||
clear_breakpoints();
|
||||
ScriptDebugger::get_singleton()->set_depth(-1);
|
||||
|
Loading…
Reference in New Issue
Block a user