diff options
Diffstat (limited to 'gdb/cli')
-rw-r--r-- | gdb/cli/cli-cmds.c | 16 | ||||
-rw-r--r-- | gdb/cli/cli-decode.c | 12 | ||||
-rw-r--r-- | gdb/cli/cli-decode.h | 10 |
3 files changed, 32 insertions, 6 deletions
diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c index 96abe8c..ce7378e 100644 --- a/gdb/cli/cli-cmds.c +++ b/gdb/cli/cli-cmds.c @@ -1202,8 +1202,9 @@ The commands below can be used to select other frames by number or address."), /* Define general commands. */ - add_com ("pwd", class_files, pwd_command, _("\ + c = add_com ("pwd", class_files, pwd_command, _("\ Print working directory. This is used for your program as well.")); + set_cmd_async_ok (c); c = add_cmd ("cd", class_files, cd_command, _("\ Set working directory to DIR for debugger and program being debugged.\n\ The change does not take effect for the program being debugged\n\ @@ -1243,6 +1244,7 @@ when GDB is started."), gdbinit); c = add_com ("help", class_support, help_command, _("Print list of commands.")); set_cmd_completer (c, command_completer); + set_cmd_async_ok (c); add_com_alias ("q", "quit", class_support, 1); add_com_alias ("h", "help", class_support, 1); @@ -1268,17 +1270,19 @@ Without an argument, history expansion is enabled."), show_history_expansion_p, &sethistlist, &showhistlist); - add_prefix_cmd ("info", class_info, info_command, _("\ + c = add_prefix_cmd ("info", class_info, info_command, _("\ Generic command for showing things about the program being debugged."), - &infolist, "info ", 0, &cmdlist); + &infolist, "info ", 0, &cmdlist); + set_cmd_async_ok (c); add_com_alias ("i", "info", class_info, 1); add_com ("complete", class_obscure, complete_command, _("List the completions for the rest of the line as a command.")); - add_prefix_cmd ("show", class_info, show_command, - _("Generic command for showing things about the debugger."), - &showlist, "show ", 0, &cmdlist); + c = add_prefix_cmd ("show", class_info, show_command, _("\ +Generic command for showing things about the debugger."), + &showlist, "show ", 0, &cmdlist); + set_cmd_async_ok (c); /* Another way to get at the same thing. */ add_info ("set", show_command, _("Show all GDB settings.")); diff --git a/gdb/cli/cli-decode.c b/gdb/cli/cli-decode.c index 65fcdcc..4e68f93 100644 --- a/gdb/cli/cli-decode.c +++ b/gdb/cli/cli-decode.c @@ -105,6 +105,18 @@ get_cmd_context (struct cmd_list_element *cmd) return cmd->context; } +void +set_cmd_async_ok (struct cmd_list_element *cmd) +{ + cmd->flags |= CMD_ASYNC_OK; +} + +int +get_cmd_async_ok (struct cmd_list_element *cmd) +{ + return cmd->flags & CMD_ASYNC_OK; +} + enum cmd_types cmd_type (struct cmd_list_element *cmd) { diff --git a/gdb/cli/cli-decode.h b/gdb/cli/cli-decode.h index 59a8239..f133b3d 100644 --- a/gdb/cli/cli-decode.h +++ b/gdb/cli/cli-decode.h @@ -48,6 +48,9 @@ cmd_types; #define DEPRECATED_WARN_USER 0x2 #define MALLOCED_REPLACEMENT 0x4 +/* This flag is set if the command is allowed during async execution. */ +#define CMD_ASYNC_OK 0x8 + struct cmd_list_element { /* Points to next command in this list. */ @@ -243,6 +246,13 @@ extern int cmd_cfunc_eq (struct cmd_list_element *cmd, extern void set_cmd_context (struct cmd_list_element *cmd, void *context); extern void *get_cmd_context (struct cmd_list_element *cmd); +/* Mark command as async-ready; there is no way to disable this once + set. */ +extern void set_cmd_async_ok (struct cmd_list_element *); + +/* Return true if command is async-ok. */ +extern int get_cmd_async_ok (struct cmd_list_element *); + extern struct cmd_list_element *lookup_cmd (char **, struct cmd_list_element *, char *, int, int); |