diff options
author | Simon Marchi <simon.marchi@efficios.com> | 2023-04-21 09:45:30 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@efficios.com> | 2023-05-30 15:07:26 -0400 |
commit | 3d654fa72d3ab52e3ced87291e41f160544d68b7 (patch) | |
tree | a46a3e83616d6e509e4ebff3496343ebaa2fa473 /gdb/mi | |
parent | 19081eb5f18e9e9c6855935c1149afa9a5edfbe1 (diff) | |
download | gdb-3d654fa72d3ab52e3ced87291e41f160544d68b7.zip gdb-3d654fa72d3ab52e3ced87291e41f160544d68b7.tar.gz gdb-3d654fa72d3ab52e3ced87291e41f160544d68b7.tar.bz2 |
gdb: add interp::on_param_changed method
Same idea as previous patches, but for command_param_changed.
Change-Id: I7c2196343423360da05f016f8ffa871c064092bb
Diffstat (limited to 'gdb/mi')
-rw-r--r-- | gdb/mi/mi-interp.c | 34 | ||||
-rw-r--r-- | gdb/mi/mi-interp.h | 1 |
2 files changed, 11 insertions, 24 deletions
diff --git a/gdb/mi/mi-interp.c b/gdb/mi/mi-interp.c index 73a193d..e15ac81 100644 --- a/gdb/mi/mi-interp.c +++ b/gdb/mi/mi-interp.c @@ -60,7 +60,6 @@ static int mi_interp_query_hook (const char *ctlstr, va_list ap) static void mi_insert_notify_hooks (void); static void mi_remove_notify_hooks (void); -static void mi_command_param_changed (const char *param, const char *value); static void mi_memory_changed (struct inferior *inf, CORE_ADDR memaddr, ssize_t len, const bfd_byte *myaddr); @@ -793,36 +792,25 @@ mi_interp::on_solib_unloaded (so_list *solib) gdb_flush (this->event_channel); } -/* Emit notification about the command parameter change. */ - -static void -mi_command_param_changed (const char *param, const char *value) +void +mi_interp::on_param_changed (const char *param, const char *value) { if (mi_suppress_notification.cmd_param_changed) return; - SWITCH_THRU_ALL_UIS () - { - struct mi_interp *mi = as_mi_interp (top_level_interpreter ()); - struct ui_out *mi_uiout; - - if (mi == NULL) - continue; - - mi_uiout = top_level_interpreter ()->interp_ui_out (); + ui_out *mi_uiout = this->interp_ui_out (); - target_terminal::scoped_restore_terminal_state term_state; - target_terminal::ours_for_output (); + target_terminal::scoped_restore_terminal_state term_state; + target_terminal::ours_for_output (); - gdb_printf (mi->event_channel, "cmd-param-changed"); + gdb_printf (this->event_channel, "cmd-param-changed"); - ui_out_redirect_pop redir (mi_uiout, mi->event_channel); + ui_out_redirect_pop redir (mi_uiout, this->event_channel); - mi_uiout->field_string ("param", param); - mi_uiout->field_string ("value", value); + mi_uiout->field_string ("param", param); + mi_uiout->field_string ("value", value); - gdb_flush (mi->event_channel); - } + gdb_flush (this->event_channel); } /* Emit notification about the target memory change. */ @@ -973,7 +961,5 @@ _initialize_mi_interp () interp_factory_register (INTERP_MI4, mi_interp_factory); interp_factory_register (INTERP_MI, mi_interp_factory); - gdb::observers::command_param_changed.attach (mi_command_param_changed, - "mi-interp"); gdb::observers::memory_changed.attach (mi_memory_changed, "mi-interp"); } diff --git a/gdb/mi/mi-interp.h b/gdb/mi/mi-interp.h index 8ec8bc0..c190fc1 100644 --- a/gdb/mi/mi-interp.h +++ b/gdb/mi/mi-interp.h @@ -69,6 +69,7 @@ public: void on_breakpoint_created (breakpoint *b) override; void on_breakpoint_deleted (breakpoint *b) override; void on_breakpoint_modified (breakpoint *b) override; + void on_param_changed (const char *param, const char *value) override; /* MI's output channels */ mi_console_file *out; |