mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-02 14:53:46 +08:00
d9deb60b2e
C++ 11 has a built-in attribute for this, no need to use a compat macro. Change-Id: I90e4220d26e8f3949d91761f8a13cd9c37da3875 Reviewed-by: Lancelot Six <lancelot.six@amd.com>
137 lines
4.6 KiB
C++
137 lines
4.6 KiB
C++
/* Top level stuff for GDB, the GNU debugger.
|
|
|
|
Copyright (C) 1986-2024 Free Software Foundation, Inc.
|
|
|
|
This file is part of GDB.
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
|
|
|
#ifndef TOP_H
|
|
#define TOP_H
|
|
|
|
#include "gdbsupport/event-loop.h"
|
|
#include "gdbsupport/next-iterator.h"
|
|
#include "value.h"
|
|
|
|
/* From top.c. */
|
|
extern bool confirm;
|
|
extern int inhibit_gdbinit;
|
|
extern auto_boolean interactive_mode;
|
|
|
|
/* Print the GDB version banner to STREAM. If INTERACTIVE is false,
|
|
then information referring to commands (e.g., "show configuration")
|
|
is omitted; this mode is used for the --version command line
|
|
option. If INTERACTIVE is true, then interactive commands are
|
|
mentioned. */
|
|
extern void print_gdb_version (struct ui_file *stream, bool interactive);
|
|
|
|
extern void print_gdb_configuration (struct ui_file *);
|
|
|
|
extern void read_command_file (FILE *);
|
|
extern void init_history (void);
|
|
extern void command_loop (void);
|
|
extern int quit_confirm (void);
|
|
[[noreturn]] extern void quit_force (int *, int);
|
|
extern void quit_command (const char *, int);
|
|
extern void quit_cover (void);
|
|
extern void execute_command (const char *, int);
|
|
|
|
/* Run FN. Capture its output into the returned string, do not display it
|
|
to the screen. The global BATCH_FLAG will temporarily be set to true.
|
|
When TERM_OUT is true the output is collected with terminal behaviour
|
|
(e.g. with styling). When TERM_OUT is false raw output will be collected
|
|
(e.g. no styling). */
|
|
|
|
extern void execute_fn_to_string (std::string &res,
|
|
std::function<void(void)> fn, bool term_out);
|
|
|
|
/* As execute_fn_to_ui_file, but run execute_command for P and FROM_TTY. */
|
|
|
|
extern void execute_command_to_ui_file (struct ui_file *file,
|
|
const char *p, int from_tty);
|
|
|
|
/* As execute_fn_to_string, but run execute_command for P and FROM_TTY. */
|
|
|
|
extern void execute_command_to_string (std::string &res, const char *p,
|
|
int from_tty, bool term_out);
|
|
|
|
/* Same as the above, but ignore resulting string. */
|
|
|
|
extern void execute_command_to_string (const char *p,
|
|
int from_tty, bool term_out);
|
|
|
|
/* If the interpreter is in sync mode (we're running a user command's
|
|
list, running command hooks or similars), and we just ran a
|
|
synchronous command that started the target, wait for that command
|
|
to end. WAS_SYNC indicates whether sync_execution was set before
|
|
the command was run. */
|
|
|
|
extern void maybe_wait_sync_command_done (int was_sync);
|
|
|
|
/* Wait for a synchronous execution command to end. */
|
|
extern void wait_sync_command_done (void);
|
|
|
|
extern void check_frame_language_change (void);
|
|
|
|
/* Prepare for execution of a command.
|
|
Call this before every command, CLI or MI.
|
|
Returns a cleanup to be run after the command is completed. */
|
|
extern scoped_value_mark prepare_execute_command (void);
|
|
|
|
/* This function returns a pointer to the string that is used
|
|
by gdb for its command prompt. */
|
|
extern const std::string &get_prompt ();
|
|
|
|
/* This function returns a pointer to the string that is used
|
|
by gdb for its command prompt. */
|
|
extern void set_prompt (const char *s);
|
|
|
|
/* Return 1 if UI's current input handler is a secondary prompt, 0
|
|
otherwise. */
|
|
|
|
extern int gdb_in_secondary_prompt_p (struct ui *ui);
|
|
|
|
/* Perform _initialize initialization. */
|
|
extern void gdb_init ();
|
|
|
|
/* For use by event-top.c. */
|
|
/* Variables from top.c. */
|
|
extern int source_line_number;
|
|
extern std::string source_file_name;
|
|
extern bool history_expansion_p;
|
|
extern bool server_command;
|
|
extern char *lim_at_start;
|
|
|
|
extern void gdb_add_history (const char *);
|
|
|
|
extern void show_commands (const char *args, int from_tty);
|
|
|
|
extern void set_verbose (const char *, int, struct cmd_list_element *);
|
|
|
|
extern const char *handle_line_of_input (std::string &cmd_line_buffer,
|
|
const char *rl, int repeat,
|
|
const char *annotation_suffix);
|
|
|
|
/* Call at startup to see if the user has requested that gdb start up
|
|
quietly. */
|
|
|
|
extern bool check_quiet_mode ();
|
|
|
|
/* Unbuffer STREAM. This is a wrapper around setbuf(STREAM, nullptr)
|
|
which applies some special rules for MS-Windows hosts. */
|
|
|
|
extern void unbuffer_stream (FILE *stream);
|
|
|
|
#endif
|