mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-27 22:48:57 +08:00
gdb: add debug prints in event loop
Add debug printouts about event loop-related events: - When a file descriptor handler gets invoked - When an async event/signal handler gets invoked gdb/ChangeLog: * async-event.c (invoke_async_signal_handlers): Add debug print. (check_async_event_handlers): Likewise. * event-top.c (show_debug_event_loop): New function. (_initialize_event_top): Register "set debug event-loop" setting. gdbserver/ChangeLog: * server.cc (handle_monitor_command): Handle "set debug-event-loop". (captured_main): Handle "--debug-event-loop". (monitor_show_help): Mention new setting. (gdbserver_usage): Mention new flag. gdbsupport/ChangeLog: * event-loop.h (debug_event_loop): New variable declaration. (event_loop_debug_printf_1): New function declaration. (event_loop_debug_printf): New macro. * event-loop.cc (debug_event_loop): New variable. (handle_file_event): Add debug print. (event_loop_debug_printf_1): New function. Change-Id: If78ed3a69179881368e7895b42940ce13b6a1a05
This commit is contained in:

committed by
Simon Marchi

parent
ba98841943
commit
6b01403b25
@ -525,7 +525,7 @@ void
|
||||
ui_register_input_event_handler (struct ui *ui)
|
||||
{
|
||||
add_file_handler (ui->input_fd, stdin_event_handler, ui,
|
||||
string_printf ("ui-%d", ui->num));
|
||||
string_printf ("ui-%d", ui->num), true);
|
||||
}
|
||||
|
||||
/* See top.h. */
|
||||
@ -1287,3 +1287,53 @@ gdb_disable_readline (void)
|
||||
gdb_rl_callback_handler_remove ();
|
||||
delete_file_handler (ui->input_fd);
|
||||
}
|
||||
|
||||
static const char debug_event_loop_off[] = "off";
|
||||
static const char debug_event_loop_all_except_ui[] = "all-except-ui";
|
||||
static const char debug_event_loop_all[] = "all";
|
||||
|
||||
static const char *debug_event_loop_enum[] = {
|
||||
debug_event_loop_off,
|
||||
debug_event_loop_all_except_ui,
|
||||
debug_event_loop_all,
|
||||
nullptr
|
||||
};
|
||||
|
||||
static const char *debug_event_loop_value = debug_event_loop_off;
|
||||
|
||||
static void
|
||||
set_debug_event_loop_command (const char *args, int from_tty,
|
||||
cmd_list_element *c)
|
||||
{
|
||||
if (debug_event_loop_value == debug_event_loop_off)
|
||||
debug_event_loop = debug_event_loop_kind::OFF;
|
||||
else if (debug_event_loop_value == debug_event_loop_all_except_ui)
|
||||
debug_event_loop = debug_event_loop_kind::ALL_EXCEPT_UI;
|
||||
else if (debug_event_loop_value == debug_event_loop_all)
|
||||
debug_event_loop = debug_event_loop_kind::ALL;
|
||||
else
|
||||
gdb_assert_not_reached ("Invalid debug event look kind value.");
|
||||
}
|
||||
|
||||
static void
|
||||
show_debug_event_loop_command (struct ui_file *file, int from_tty,
|
||||
struct cmd_list_element *cmd, const char *value)
|
||||
{
|
||||
fprintf_filtered (file, _("Event loop debugging is %s.\n"), value);
|
||||
}
|
||||
|
||||
void _initialize_event_top ();
|
||||
void
|
||||
_initialize_event_top ()
|
||||
{
|
||||
add_setshow_enum_cmd ("event-loop", class_maintenance,
|
||||
debug_event_loop_enum,
|
||||
&debug_event_loop_value,
|
||||
_("Set event-loop debugging."),
|
||||
_("Show event-loop debugging."),
|
||||
_("\
|
||||
Control whether to show event loop-related debug messages."),
|
||||
set_debug_event_loop_command,
|
||||
show_debug_event_loop_command,
|
||||
&setdebuglist, &showdebuglist);
|
||||
}
|
||||
|
Reference in New Issue
Block a user