Always process target events in the main UI

This makes target events always be always processed with the main UI
as current UI.  This way, warnings, debug output, etc. are always
consistently sent to the main console.

gdb/ChangeLog:
2016-06-21  Pedro Alves  <palves@redhat.com>

	* event-top.c (restore_ui_cleanup): Make extern.
	* infrun.c (fetch_inferior_event): Always switch to the main UI.
	* top.h (restore_ui_cleanup): Declare.
This commit is contained in:
Pedro Alves 2016-06-21 01:11:49 +01:00
parent 3c216924d6
commit c61db772bf
4 changed files with 17 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2016-06-21 Pedro Alves <palves@redhat.com>
* event-top.c (restore_ui_cleanup): Make extern.
* infrun.c (fetch_inferior_event): Always switch to the main UI.
* top.h (restore_ui_cleanup): Declare.
2016-06-21 Pedro Alves <palves@redhat.com>
PR mi/20034

View File

@ -456,9 +456,9 @@ struct ui *main_ui = &main_ui_;
struct ui *current_ui = &main_ui_;
struct ui *ui_list = &main_ui_;
/* Cleanup that restores the current UI. */
/* See top.h. */
static void
void
restore_ui_cleanup (void *data)
{
current_ui = (struct ui *) data;

View File

@ -3879,6 +3879,12 @@ fetch_inferior_event (void *client_data)
memset (ecs, 0, sizeof (*ecs));
/* Events are always processed with the main UI as current UI. This
way, warnings, debug output, etc. are always consistently sent to
the main console. */
make_cleanup (restore_ui_cleanup, current_ui);
current_ui = main_ui;
/* End up with readline processing input, if necessary. */
make_cleanup (reinstall_readline_callback_handler_cleanup, NULL);

View File

@ -141,6 +141,9 @@ extern void switch_thru_all_uis_next (struct switch_thru_all_uis *state);
switch_thru_all_uis_cond (&STATE); \
switch_thru_all_uis_next (&STATE))
/* Cleanup that restores the current UI. */
extern void restore_ui_cleanup (void *data);
/* From top.c. */
extern char *saved_command_line;
extern int in_user_command;