/* TUI Interpreter definitions for GDB, the GNU debugger.
- Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of GDB.
#include "ui-out.h"
#include "cli-out.h"
#include "tui/tui-data.h"
-#include "readline/readline.h"
#include "tui/tui-win.h"
#include "tui/tui.h"
#include "tui/tui-io.h"
#include "infrun.h"
-#include "observer.h"
+#include "observable.h"
#include "gdbthread.h"
+#include "inferior.h"
+#include "main.h"
/* Set to 1 when the TUI mode must be activated when we first start
gdb. */
static tui_interp *
as_tui_interp (struct interp *interp)
{
- if (strcmp (interp_name (interp), INTERP_TUI) == 0)
- return (tui_interp *) interp;
- return NULL;
+ return dynamic_cast<tui_interp *> (interp);
}
/* Cleanup the tui before exiting. */
static void
tui_on_user_selected_context_changed (user_selected_what selection)
{
- struct thread_info *tp;
-
/* This event is suppressed. */
if (cli_suppress_notification.user_selected_context)
return;
- tp = find_thread_ptid (inferior_ptid);
+ thread_info *tp = inferior_ptid != null_ptid ? inferior_thread () : NULL;
SWITCH_THRU_ALL_UIS ()
{
/* Install exit handler to leave the screen in a good shape. */
atexit (tui_exit);
- tui_initialize_static_data ();
-
tui_initialize_io ();
tui_initialize_win ();
if (ui_file_isatty (gdb_stdout))
}
/* If changing this, remember to update cli-interp.c as well. */
- observer_attach_normal_stop (tui_on_normal_stop);
- observer_attach_signal_received (tui_on_signal_received);
- observer_attach_end_stepping_range (tui_on_end_stepping_range);
- observer_attach_signal_exited (tui_on_signal_exited);
- observer_attach_exited (tui_on_exited);
- observer_attach_no_history (tui_on_no_history);
- observer_attach_sync_execution_done (tui_on_sync_execution_done);
- observer_attach_command_error (tui_on_command_error);
- observer_attach_user_selected_context_changed
+ gdb::observers::normal_stop.attach (tui_on_normal_stop);
+ gdb::observers::signal_received.attach (tui_on_signal_received);
+ gdb::observers::end_stepping_range.attach (tui_on_end_stepping_range);
+ gdb::observers::signal_exited.attach (tui_on_signal_exited);
+ gdb::observers::exited.attach (tui_on_exited);
+ gdb::observers::no_history.attach (tui_on_no_history);
+ gdb::observers::sync_execution_done.attach (tui_on_sync_execution_done);
+ gdb::observers::command_error.attach (tui_on_command_error);
+ gdb::observers::user_selected_context_changed.attach
(tui_on_user_selected_context_changed);
}