51 #include "filenames.h" 57 #include "readline/readline.h" 58 #include "readline/history.h" 63 #include <sys/types.h> 83 #define PROMPT(X) the_prompts.prompt_stack[the_prompts.top + X].prompt 84 #define PREFIX(X) the_prompts.prompt_stack[the_prompts.top + X].prefix 85 #define SUFFIX(X) the_prompts.prompt_stack[the_prompts.top + X].suffix 89 #ifndef DEFAULT_PROMPT 90 #define DEFAULT_PROMPT "(gdb) " 96 #define gen_ret_current_ui_field_ptr(type, name) \ 98 current_ui_## name ## _ptr (void) \ 100 return ¤t_ui->m_ ## name; \ 123 show_confirm (
struct ui_file *file,
int from_tty,
127 "dangerous operations is %s.\n"),
215 char *(*deprecated_readline_hook) (
const char *);
240 const char *cmd,
int from_tty);
251 ui::ui (FILE *instream_, FILE *outstream_, FILE *errstream_)
254 call_readline (nullptr),
255 input_handler (nullptr),
257 interp_info (nullptr),
259 secondary_prompt_depth (0),
260 stdin_stream (instream_),
261 instream (instream_),
262 outstream (outstream_),
263 errstream (errstream_),
264 input_fd (fileno (instream)),
270 m_gdb_stdlog (m_gdb_stderr),
271 m_current_uiout (nullptr)
289 struct ui *
ui, *uiprev;
332 const char *interpreter_name;
333 const char *tty_name;
338 argc =
argv.count ();
341 error (
_(
"usage: new-ui <interpreter> <tty>"));
343 interpreter_name =
argv[0];
351 for (i = 0; i < 3; i++)
354 std::unique_ptr<ui>
ui 355 (
new struct ui (stream[0].
get (), stream[1].
get (), stream[2].
get ()));
366 stream[0].release ();
367 stream[1].release ();
368 stream[2].release ();
432 do_chdir_cleanup (
void *old_dir)
434 chdir ((
const char *) old_dir);
458 static int warned = 0;
542 struct cleanup *cleanup_if_error;
545 const char *cmd_start = p;
563 while (*p ==
' ' || *p ==
'\t')
581 const char *args_pointer = p;
601 const char *old_end = arg + strlen (arg) - 1;
603 while (p >= arg && (*p ==
' ' || *p ==
'\t'))
608 arg = without_whitespace.c_str ();
626 error (
_(
"That is not a command, just a help topic."));
683 return std::move (str_file.
string ());
730 struct buffer line_buffer;
735 int fd = fileno (stream);
758 FD_SET (fd, &readfds);
838 _(
"The number of history entries to look back at for " 839 "duplicates is %s.\n"),
849 "the command history is \"%s\".\n"),
937 rl_already_prompted =
cleanup->already_prompted_orig;
957 if (
cleanup->target_is_async_orig)
976 cleanup->already_prompted_orig = rl_already_prompted;
978 cleanup->already_prompted_orig = 0;
988 if (
cleanup->target_is_async_orig)
997 rl_already_prompted = 1;
1000 (*after_char_processing_hook) ();
1025 rl_get_previous_history (delta, 0);
1032 rl_pre_input_hook = NULL;
1049 where = where_history();
1051 if ((history_is_stifled () && (history_length >= history_max_entries))
1052 || (where >= history_length - 1))
1057 return rl_newline (1, key);
1074 int lookbehind_threshold;
1087 for (lookbehind = 0; lookbehind < lookbehind_threshold; lookbehind++)
1089 HIST_ENTRY *temp = previous_history ();
1094 if (strcmp (temp->line, command) == 0)
1096 HIST_ENTRY *prev = remove_history (where_history ());
1098 free_history_entry (prev);
1105 add_history (command);
1114 int ret, saved_errno;
1120 saved_errno = errno;
1121 if (ret < 0 && saved_errno != ENOENT)
1123 warning (
_(
"Could not rename %s to %s: %s"),
1140 write_history (local_history_filename.c_str ());
1144 append_history (
command_count, local_history_filename.c_str ());
1145 if (history_is_stifled ())
1146 history_truncate_file (local_history_filename.c_str (),
1147 history_max_entries);
1151 saved_errno = errno;
1152 if (ret < 0 && saved_errno != EEXIST)
1153 warning (
_(
"Could not rename %s to %s: %s"),
1174 const char *annotation_suffix)
1176 static struct buffer cmd_line_buffer;
1177 static int cmd_line_buffer_initialized;
1179 const char *prompt = prompt_arg;
1184 if (annotation_suffix == NULL)
1185 annotation_suffix =
"";
1192 = (
char *) alloca ((prompt == NULL ? 0 : strlen (prompt))
1193 + strlen (annotation_suffix) + 40);
1195 local_prompt[0] =
'\0';
1197 strcpy (local_prompt, prompt);
1198 strcat (local_prompt,
"\n\032\032");
1199 strcat (local_prompt, annotation_suffix);
1200 strcat (local_prompt,
"\n");
1202 prompt = local_prompt;
1205 if (!cmd_line_buffer_initialized)
1208 cmd_line_buffer_initialized = 1;
1216 signal (SIGTSTP, handle_sigtstp);
1245 rl = (*deprecated_readline_hook) (prompt);
1259 repeat, annotation_suffix);
1260 if (cmd == (
char *) EOF)
1276 signal (SIGTSTP, SIG_DFL);
1295 "Copyright (C) 2018 Free Software Foundation, Inc.\n");
1303 License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\ 1304 \nThis is free software: you are free to change and redistribute it.\n\ 1305 There is NO WARRANTY, to the extent permitted by law. Type \"show copying\"\n\ 1306 and \"show warranty\" for details.\n");
1321 Type \"show configuration\" for configuration details.");
1326 _(
"\nFor bug reporting instructions, please see:\n"));
1330 _(
"Find the GDB manual and other documentation \ 1331 resources online at:\n<http://www.gnu.org/software/gdb/documentation/>.\n"));
1334 commands related to \"word\"."));
1342 This GDB was configured as follows:\n\ 1343 configure --host=%s --target=%s\n\ 1346 --with-auto-load-dir=%s\n\ 1347 --with-auto-load-safe-path=%s\n\ 1360 --with-gdb-datadir=%s%s\n\ 1364 --with-iconv-bin=%s%s\n\ 1365 "), ICONV_BIN, ICONV_BIN_RELOCATABLE ?
" (relocatable)" :
"");
1369 --with-jit-reader-dir=%s%s\n\ 1371 #if HAVE_LIBUNWIND_IA64_H 1373 --with-libunwind-ia64\n\ 1377 --without-libunwind-ia64\n\ 1389 #ifdef WITH_PYTHON_PATH 1391 --with-python=%s%s\n\ 1405 --with-relocated-sources=%s\n\ 1410 --with-separate-debug-dir=%s%s\n\ 1414 --with-sysroot=%s%s\n\ 1418 --with-system-gdbinit=%s%s\n\ 1420 #if HAVE_LIBBABELTRACE 1422 --with-babeltrace\n\ 1426 --without-babeltrace\n\ 1432 (\"Relocatable\" means the directory can be moved with the GDB installation\n\ 1433 tree, and GDB will still find it.)\n\ 1455 char *p = xstrdup (s);
1488 if (
inf->attach_flag)
1510 if (
inf->attach_flag)
1512 _(
"\tInferior %d [%s] will be detached.\n"),
inf->num,
1516 _(
"\tInferior %d [%s] will be killed.\n"),
inf->num,
1535 stb.
puts (
_(
"A debugging session is active.\n\n"));
1537 stb.
puts (
_(
"\nQuit anyway? "));
1576 exit_code = *exit_arg;
1664 "is %s (currently %s).\n",
1695 #define Hist_print 10 1710 if (args[0] ==
'+' && args[1] ==
'\0')
1740 (history_get (history_base +
offset))->line);
1750 if (from_tty && args)
1763 if (history_size == -1)
1764 unstifle_history ();
1766 stifle_history (history_size);
1781 "by the name of a history subcommand.\n"));
1797 const char *cmdname =
"verbose";
1805 c->
doc =
"Set verbose printing of informational messages.";
1806 showcmd->
doc =
"Show verbose printing of informational messages.";
1810 c->
doc =
"Set verbosity.";
1811 showcmd->
doc =
"Show verbosity.";
1825 tmpenv = getenv (
"GDBHISTSIZE");
1834 var = strtol (tmpenv, &endptr, 10);
1835 saved_errno = errno;
1843 if (*endptr !=
'\0')
1845 else if (*tmpenv ==
'\0' 1852 || (
var ==
INT_MAX && saved_errno == ERANGE))
1865 tmpenv = getenv (
"GDBHISTFILE");
1908 "they are typed is %s.\n"),
1924 "asynchronous execution commands is %s.\n"),
1982 rl_readline_name =
"gdb";
1983 rl_terminal_name = getenv (
"TERM");
1991 _(
"Set gdb's prompt"),
1992 _(
"Show gdb's prompt"),
1998 Don't repeat this command.\nPrimarily \ 1999 used inside of user-defined commands that should not be repeated when\n\ 2004 Set editing of command lines as they are typed."),
_(
"\ 2005 Show editing of command lines as they are typed."),
_(
"\ 2006 Use \"on\" to enable the editing, and \"off\" to disable it.\n\ 2007 Without an argument, command line editing is enabled. To edit, use\n\ 2008 EMACS-like or VI-like commands like control-P or ESC."),
2014 Set saving of the history record on exit."),
_(
"\ 2015 Show saving of the history record on exit."),
_(
"\ 2016 Use \"on\" to enable the saving, and \"off\" to disable it.\n\ 2017 Without an argument, saving is enabled."),
2024 Set the size of the command history,"),
_(
"\ 2025 Show the size of the command history,"),
_(
"\ 2026 ie. the number of previous commands to keep a record of.\n\ 2027 If set to \"unlimited\", the number of commands kept in the history\n\ 2028 list is unlimited. This defaults to the value of the environment\n\ 2029 variable \"GDBHISTSIZE\", or to 256 if this variable is not set."),
2036 Set how far back in history to look for and remove duplicate entries."),
_(
"\ 2037 Show how far back in history to look for and remove duplicate entries."),
_(
"\ 2038 If set to a nonzero value N, GDB will look back at the last N history entries\n\ 2039 and remove the first history entry that is a duplicate of the most recent\n\ 2040 entry, each time a new history entry is added.\n\ 2041 If set to \"unlimited\", this lookbehind is unbounded.\n\ 2042 Only history entries added during this session are considered for removal.\n\ 2043 If set to 0, removal of duplicate history entries is disabled.\n\ 2044 By default this option is set to 0."),
2050 Set the filename in which to record the command history"),
_(
"\ 2051 Show the filename in which to record the command history"),
_(
"\ 2052 (the list of previous commands of which a record is kept)."),
2058 Set whether to confirm potentially dangerous operations."),
_(
"\ 2059 Show whether to confirm potentially dangerous operations."), NULL,
2065 Set annotation_level."),
_(
"\ 2066 Show annotation_level."),
_(
"\ 2067 0 == normal; 1 == fullname (for use when running under emacs)\n\ 2068 2 == output annotated suitably for use by programs that control GDB."),
2075 Set notification of completion for asynchronous execution commands."),
_(
"\ 2076 Show notification of completion for asynchronous execution commands."),
_(
"\ 2077 Use \"on\" to enable the notification, and \"off\" to disable it."),
2084 _(
"Show GDB's data directory."),
2086 When set, GDB uses the specified path to search for data files."),
2093 Set whether GDB's standard input is a terminal."),
_(
"\ 2094 Show whether GDB's standard input is a terminal."),
_(
"\ 2095 If on, GDB assumes that standard input is a terminal. In practice, it\n\ 2096 means that GDB should wait for the user to answer queries associated to\n\ 2097 commands entered at the command prompt. If off, GDB assumes that standard\n\ 2098 input is not a terminal, and uses the default answer to all queries.\n\ 2099 If auto (the default), determine which mode to use based on the standard\n\ 2106 Create a new UI. It takes two arguments:\n\ 2107 The first argument is the name of the interpreter to run.\n\ 2108 The second argument is the terminal the UI runs on.\n"), &
cmdlist);
void add_setshow_filename_cmd(const char *name, enum command_class theclass, char **var, const char *set_doc, const char *show_doc, const char *help_doc, cmd_const_sfunc_ftype *set_func, show_value_ftype *show_func, struct cmd_list_element **set_list, struct cmd_list_element **show_list)
int have_live_inferiors(void)
void gdb_add_history(const char *command)
unsigned int deprecated_warn_user
void(* after_char_processing_hook)(void)
struct cmd_list_element * next
static void show_history_filename(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
static void set_history_size_command(const char *args, int from_tty, struct cmd_list_element *c)
void async_init_signals(void)
void language_info(int quietly)
void execute_cmd_pre_hook(struct cmd_list_element *c)
struct ui_file * m_gdb_stdin
void initialize_inferiors(void)
static void dont_repeat_command(const char *ignored, int from_tty)
void fputs_unfiltered(const char *buf, struct ui_file *file)
void finish_ext_lang_initialization(void)
__extension__ enum cmd_types type
void add_setshow_auto_boolean_cmd(const char *name, enum command_class theclass, enum auto_boolean *var, const char *set_doc, const char *show_doc, const char *help_doc, cmd_const_sfunc_ftype *set_func, show_value_ftype *show_func, struct cmd_list_element **set_list, struct cmd_list_element **show_list)
#define JIT_READER_DIR_RELOCATABLE
const char * default_word_break_characters(void)
void warning(const char *fmt,...)
void cli_display_match_list(char **matches, int len, int max)
void do_final_cleanups(struct cleanup *old_chain)
int query(const char *ctlstr,...)
void(* deprecated_attach_hook)(void)
static enum auto_boolean interactive_mode
enum language set_language(enum language lang)
void change_line_handler(int editing)
void target_detach(const char *args, int from_tty)
int(* deprecated_ui_loop_hook)(int)
static char * history_filename
static const char * repeat_arguments
struct cmd_list_element * lookup_cmd(const char **line, struct cmd_list_element *list, const char *cmdtype, int allow_unknown, int ignore_help_classes)
void initialize_targets(void)
#define target_log_command(p)
#define AUTO_LOAD_SAFE_PATH
struct cmd_list_element * add_cmd(const char *name, enum command_class theclass, const char *doc, struct cmd_list_element **list)
void interpreter_completer(struct cmd_list_element *ignore, completion_tracker &tracker, const char *text, const char *word)
struct cmd_list_element * lookup_cmd_1(const char **text, struct cmd_list_element *clist, struct cmd_list_element **result_list, int ignore_help_classes)
void target_async(int enable)
static int history_remove_duplicates
enum language la_language
static void set_readline_history_size(int history_size)
struct cmd_list_element * cmdlist
struct inferior * iterate_over_inferiors(int(*callback)(struct inferior *, void *), void *data)
void print_gdb_configuration(struct ui_file *stream)
char * skip_spaces(char *chp)
void set_rl_completer_word_break_characters(const char *break_chars)
char * gdb_completion_word_break_characters()
char * command_line_input(const char *prompt_arg, int repeat, const char *annotation_suffix)
void(* deprecated_readline_end_hook)(void)
void deprecated_cmd_warning(const char *text)
static void show_annotation_level(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
void set_repeat_arguments(const char *args)
static void undo_terminal_modifications_before_exit(void)
void gdb_disable_readline(void)
static void show_history_remove_duplicates(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
static int gdb_readline_wrapper_done
void initialize_all_files(void)
std::string execute_command_to_string(const char *p, int from_tty)
void set_initial_gdb_ttystate(void)
void execute_user_command(struct cmd_list_element *c, const char *args)
static int command_editing_p
void printf_filtered(const char *format,...)
static void show_interactive_mode(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
static void init_main(void)
char lang_frame_mismatch_warn[]
struct command_line * user_commands
void(* input_handler)(char *)
struct cleanup * all_cleanups(void)
#define TARGET_SYSTEM_ROOT_RELOCATABLE
scoped_restore_tmpl< T > make_scoped_restore(T *var)
void switch_to_thread(ptid_t ptid)
static int write_history_p
struct cmd_list_element * setlist
static void gdb_readline_wrapper_line(char *line)
static void show_editing(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
void show_history(const char *args, int from_tty)
void interp_pre_command_loop(struct interp *interp)
void set_gdb_data_directory(const char *new_datadir)
void target_dcache_invalidate(void)
#define CATCH(EXCEPTION, MASK)
std::unique_ptr< FILE, gdb_file_deleter > gdb_file_up
ui(FILE *instream, FILE *outstream, FILE *errstream)
static int suppress_dont_repeat
const char * source_file_name
static int highest_ui_num
char ** gdb_rl_attempted_completion_function(const char *text, int start, int end)
void command_handler(const char *command)
void cmd_func(struct cmd_list_element *cmd, const char *args, int from_tty)
void fprintf_filtered(struct ui_file *stream, const char *format,...)
static void show_gdb_datadir(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
void set_cmd_completer(struct cmd_list_element *cmd, completer_ftype *completer)
#define gen_ret_current_ui_field_ptr(type, name)
static gdb_file_up open_terminal_stream(const char *name)
enum prompt_state prompt_state
void add_setshow_zinteger_cmd(const char *name, enum command_class theclass, int *var, const char *set_doc, const char *show_doc, const char *help_doc, cmd_const_sfunc_ftype *set_func, show_value_ftype *show_func, struct cmd_list_element **set_list, struct cmd_list_element **show_list)
void(* deprecated_warning_hook)(const char *, va_list)
struct cmd_list_element * showlist
void exception_print(struct ui_file *file, struct gdb_exception e)
void quit_force(int *exit_arg, int from_tty)
ptid_t pid_to_ptid(int pid)
struct cleanup * make_cleanup(make_cleanup_ftype *function, void *arg)
struct frame_info * deprecated_safe_get_selected_frame(void)
int secondary_prompt_depth
int gdb_in_secondary_prompt_p(struct ui *ui)
void print_gdb_version(struct ui_file *stream)
#define GDB_DATADIR_RELOCATABLE
int(* deprecated_query_hook)(const char *, va_list)
void add_setshow_string_cmd(const char *name, enum command_class theclass, char **var, const char *set_doc, const char *show_doc, const char *help_doc, cmd_const_sfunc_ftype *set_func, show_value_ftype *show_func, struct cmd_list_element **set_list, struct cmd_list_element **show_list)
int already_prompted_orig
void pop_all_targets(void)
static void gdb_rl_operate_and_get_next_completion(void)
mach_port_t mach_port_t name mach_port_t mach_port_t name kern_return_t int status
#define target_is_async_p()
static int gdb_rl_operate_and_get_next(int count, int key)
void init_cmd_lists(void)
#define CMD_LIST_AMBIGUOUS
static int kill_or_detach(struct inferior *inf, void *args)
#define target_has_execution
void(* pre_init_ui_hook)(void)
int is_complete_command(struct cmd_list_element *c)
static int history_size_setshow_var
void printf_unfiltered(const char *format,...)
virtual void puts(const char *str)
void maybe_wait_sync_command_done(int was_sync)
struct cmd_list_element * sethistlist
void quit_command(const char *args, int from_tty)
char * handle_line_of_input(struct buffer *cmd_line_buffer, char *rl, int repeat, const char *annotation_suffix)
#define DEBUGDIR_RELOCATABLE
void(* deprecated_context_hook)(int id)
const char * get_gdb_completer_quote_characters(void)
static char * staged_gdb_datadir
void cmd_show_list(struct cmd_list_element *list, int from_tty, const char *prefix)
char * gdb_readline_wrapper(const char *prompt)
struct ui_file * m_gdb_stdout
void initialize_progspace(void)
void initialize_stdin_serial(void)
void wrap_here(const char *indent)
#define SYSTEM_GDBINIT_RELOCATABLE
static void new_ui_command(const char *args, int from_tty)
scoped_restore_tmpl< int > prevent_dont_repeat(void)
int input_interactive_p(struct ui *ui)
#define PYTHON_PATH_RELOCATABLE
void(* deprecated_readline_begin_hook)(const char *,...)
static int print_inferior_quit_action(struct inferior *inf, void *arg)
void show_commands(const char *args, int from_tty)
void initialize_utils(void)
void help_list(struct cmd_list_element *list, const char *cmdtype, enum command_class theclass, struct ui_file *stream)
void discard_cleanups(struct cleanup *old_chain)
const struct language_defn * current_language
void puts_unfiltered(const char *string)
static void set_gdb_datadir(const char *args, int from_tty, struct cmd_list_element *c)
void void void void void void void void void perror_with_name(const char *string) ATTRIBUTE_NORETURN
void buffer_init(struct buffer *buffer)
void execute_cmd_post_hook(struct cmd_list_element *c)
enum language get_frame_language(struct frame_info *frame)
void check_frame_language_change(void)
struct cleanup * make_bpstat_clear_actions_cleanup(void)
static void(* saved_after_char_processing_hook)(void)
int gdb_do_one_event(void)
static void show_history_size(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
const char * c_str() const
void wait_sync_command_done(void)
scoped_value_mark prepare_execute_command()
static void show_prompt(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
void gdb_rl_callback_handler_remove(void)
char * safe_strerror(int)
void set_top_level_interpreter(const char *name)
static int operate_saved_history
const char * target_pid_to_str(ptid_t ptid)
const struct language_defn * expected_language
void set_prompt(const char *s)
void add_setshow_boolean_cmd(const char *name, enum command_class theclass, int *var, const char *set_doc, const char *show_doc, const char *help_doc, cmd_const_sfunc_ftype *set_func, show_value_ftype *show_func, struct cmd_list_element **set_list, struct cmd_list_element **show_list)
static void set_history_filename(const char *args, int from_tty, struct cmd_list_element *c)
static void show_write_history_p(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
enum command_class theclass
#define TARGET_SYSTEM_ROOT
std::string string_printf(const char *fmt,...)
struct ui_file * gdb_stdtarg
int gdb_open_cloexec(const char *filename, int flags, unsigned long mode)
struct cleanup * make_final_cleanup(make_cleanup_ftype *function, void *arg)
struct buffer line_buffer
void(* deprecated_call_command_hook)(struct cmd_list_element *c, const char *cmd, int from_tty)
void display_gdb_prompt(const char *new_prompt)
void disconnect_tracing(void)
struct interp * top_level_interpreter(void)
void do_set_command(const char *arg, int from_tty, struct cmd_list_element *c)
void(* handler_orig)(char *)
struct cmd_list_element * showhistlist
static void gdb_readline_wrapper_cleanup(void *arg)
void gdb_init(char *argv0)
void do_show_command(const char *arg, int from_tty, struct cmd_list_element *c)
void set_verbose(const char *args, int from_tty, struct cmd_list_element *c)
void init_page_info(void)
struct ui_file * gdb_stdtargerr
void initialize_current_architecture(void)
static void gdb_safe_append_history(void)
static char * gdb_readline_no_editing(const char *prompt)
int interruptible_select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout)
void print_command_trace(const char *cmd)
void gdb_flush(struct ui_file *file)
void observer_notify_gdb_datadir_changed(void)
static void show_exec_done_display_p(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
char * saved_command_line
struct cmd_list_element * add_com(const char *name, enum command_class theclass, cmd_const_cfunc_ftype *fun, const char *doc)
char *(* deprecated_readline_hook)(const char *)
char * buffer_finish(struct buffer *buffer)
void(* deprecated_interactive_hook)(void)
void execute_command(const char *p, int from_tty)
int has_stack_frames(void)
void(* deprecated_print_frame_info_listing_hook)(struct symtab *s, int line, int stopline, int noerror)
struct thread_info * any_thread_of_process(int pid)
void set_history(const char *args, int from_tty)
void add_setshow_zuinteger_unlimited_cmd(const char *name, enum command_class theclass, int *var, const char *set_doc, const char *show_doc, const char *help_doc, cmd_const_sfunc_ftype *set_func, show_value_ftype *show_func, struct cmd_list_element **set_list, struct cmd_list_element **show_list)
void error(const char *fmt,...)
int return_child_result_value
static char * gdb_readline_wrapper_result
int cmd_func_p(struct cmd_list_element *cmd)
void do_cleanups(struct cleanup *old_chain)
void(* deprecated_detach_hook)(void)
static void buffer_grow_char(struct buffer *buffer, char c)
void read_command_file(FILE *stream)
ptid_t(* deprecated_target_wait_hook)(ptid_t ptid, struct target_waitstatus *status, int options)
struct ui_file * m_gdb_stderr
static void set_editing(const char *args, int from_tty, struct cmd_list_element *c)
LONGEST parse_and_eval_long(const char *exp)