1 /* Header file for GDB CLI command implementation library. 2 Copyright (C) 2000-2023 Free Software Foundation, Inc. 3 4 This program is free software; you can redistribute it and/or modify 5 it under the terms of the GNU General Public License as published by 6 the Free Software Foundation; either version 3 of the License, or 7 (at your option) any later version. 8 9 This program is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 GNU General Public License for more details. 13 14 You should have received a copy of the GNU General Public License 15 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 16 17 #ifndef CLI_CLI_CMDS_H 18 #define CLI_CLI_CMDS_H 19 20 #include "gdbsupport/filestuff.h" 21 #include "gdbsupport/gdb_optional.h" 22 #include "completer.h" 23 24 /* Chain containing all defined commands. */ 25 26 extern struct cmd_list_element *cmdlist; 27 28 /* Chain containing all defined info subcommands. */ 29 30 extern struct cmd_list_element *infolist; 31 32 /* Chain containing all defined enable subcommands. */ 33 34 extern struct cmd_list_element *enablelist; 35 36 /* Chain containing all defined disable subcommands. */ 37 38 extern struct cmd_list_element *disablelist; 39 40 /* Chain containing all defined delete subcommands. */ 41 42 extern struct cmd_list_element *deletelist; 43 44 /* Chain containing all defined detach subcommands. */ 45 46 extern struct cmd_list_element *detachlist; 47 48 /* Chain containing all defined kill subcommands. */ 49 50 extern struct cmd_list_element *killlist; 51 52 /* Chain containing all defined stop subcommands. */ 53 54 extern struct cmd_list_element *stoplist; 55 56 /* Chain containing all defined set subcommands */ 57 58 extern struct cmd_list_element *setlist; 59 60 /* Chain containing all defined unset subcommands */ 61 62 extern struct cmd_list_element *unsetlist; 63 64 /* Chain containing all defined show subcommands. */ 65 66 extern struct cmd_list_element *showlist; 67 68 /* Chain containing all defined \"set history\". */ 69 70 extern struct cmd_list_element *sethistlist; 71 72 /* Chain containing all defined \"show history\". */ 73 74 extern struct cmd_list_element *showhistlist; 75 76 /* Chain containing all defined \"unset history\". */ 77 78 extern struct cmd_list_element *unsethistlist; 79 80 /* Chain containing all defined maintenance subcommands. */ 81 82 extern struct cmd_list_element *maintenancelist; 83 84 /* Chain containing all defined "maintenance info" subcommands. */ 85 86 extern struct cmd_list_element *maintenanceinfolist; 87 88 /* Chain containing all defined "maintenance print" subcommands. */ 89 90 extern struct cmd_list_element *maintenanceprintlist; 91 92 /* Chain containing all defined "maintenance flush" subcommands. */ 93 94 extern struct cmd_list_element *maintenanceflushlist; 95 96 /* Chain containing all defined "maintenance check" subcommands. */ 97 98 extern struct cmd_list_element *maintenancechecklist; 99 100 /* Chain containing all defined "maintenance set" subcommands. */ 101 102 extern struct cmd_list_element *maintenance_set_cmdlist; 103 104 /* Chain containing all defined "maintenance show" subcommands. */ 105 106 extern struct cmd_list_element *maintenance_show_cmdlist; 107 108 extern struct cmd_list_element *setprintlist; 109 110 extern struct cmd_list_element *showprintlist; 111 112 /* Chain containing all defined "set print raw" subcommands. */ 113 114 extern struct cmd_list_element *setprintrawlist; 115 116 /* Chain containing all defined "show print raw" subcommands. */ 117 118 extern struct cmd_list_element *showprintrawlist; 119 120 /* Chain containing all defined "set print type" subcommands. */ 121 122 extern struct cmd_list_element *setprinttypelist; 123 124 /* Chain containing all defined "show print type" subcommands. */ 125 126 extern struct cmd_list_element *showprinttypelist; 127 128 extern struct cmd_list_element *setdebuglist; 129 130 extern struct cmd_list_element *showdebuglist; 131 132 extern struct cmd_list_element *setchecklist; 133 134 extern struct cmd_list_element *showchecklist; 135 136 /* Chain containing all defined "save" subcommands. */ 137 138 extern struct cmd_list_element *save_cmdlist; 139 140 /* Chain containing all defined "set source" subcommands. */ 141 142 extern struct cmd_list_element *setsourcelist; 143 144 /* Chain containing all defined "show source" subcommands. */ 145 146 extern struct cmd_list_element *showsourcelist; 147 148 /* Limit the call depth of user-defined commands */ 149 150 extern unsigned int max_user_call_depth; 151 152 /* Exported to gdb/top.c */ 153 154 int is_complete_command (struct cmd_list_element *cmd); 155 156 /* Exported to gdb/main.c */ 157 158 extern void cd_command (const char *, int); 159 160 /* Exported to gdb/top.c and gdb/main.c */ 161 162 extern void quit_command (const char *, int); 163 164 extern void source_script (const char *, int); 165 166 /* Exported to objfiles.c. */ 167 168 /* The script that was opened. */ 169 struct open_script 170 { 171 gdb_file_up stream; 172 gdb::unique_xmalloc_ptr<char> full_path; 173 174 open_script (gdb_file_up &&stream_, 175 gdb::unique_xmalloc_ptr<char> &&full_path_) 176 : stream (std::move (stream_)), 177 full_path (std::move (full_path_)) 178 { 179 } 180 }; 181 182 extern gdb::optional<open_script> 183 find_and_open_script (const char *file, int search_path); 184 185 /* Command tracing state. */ 186 187 extern int source_verbose; 188 extern bool trace_commands; 189 190 /* Common code for the "with" and "maintenance with" commands. 191 SET_CMD_PREFIX is the spelling of the corresponding "set" command 192 prefix: i.e., "set " or "maintenance set ". SETLIST is the command 193 element for the same "set" command prefix. */ 194 extern void with_command_1 (const char *set_cmd_prefix, 195 cmd_list_element *setlist, 196 const char *args, int from_tty); 197 198 /* Common code for the completers of the "with" and "maintenance with" 199 commands. SET_CMD_PREFIX is the spelling of the corresponding 200 "set" command prefix: i.e., "set " or "maintenance set ". */ 201 extern void with_command_completer_1 (const char *set_cmd_prefix, 202 completion_tracker &tracker, 203 const char *text); 204 205 #endif /* CLI_CLI_CMDS_H */ 206