diff --git a/gdb/mi/mi-interp.c b/gdb/mi/mi-interp.c index f02a7cf3f10..2c47024d5e6 100644 --- a/gdb/mi/mi-interp.c +++ b/gdb/mi/mi-interp.c @@ -112,6 +112,16 @@ as_mi_interp (struct interp *interp) return dynamic_cast (interp); } +/* Observer for the command_error notification. */ + +static void +mi_on_command_error () +{ + mi_interp *mi = as_mi_interp (top_level_interpreter ()); + if (mi != nullptr) + display_mi_prompt (mi); +} + void mi_interp::init (bool top_level) { @@ -1369,6 +1379,7 @@ _initialize_mi_interp () "mi-interp"); gdb::observers::command_param_changed.attach (mi_command_param_changed, "mi-interp"); + gdb::observers::command_error.attach (mi_on_command_error, "mi-interp"); gdb::observers::memory_changed.attach (mi_memory_changed, "mi-interp"); gdb::observers::sync_execution_done.attach (mi_on_sync_execution_done, "mi-interp");