]>
Commit | Line | Data |
---|---|---|
3c216924 PA |
1 | /* CLI Definitions for GDB, the GNU debugger. |
2 | ||
1d506c26 | 3 | Copyright (C) 2016-2024 Free Software Foundation, Inc. |
3c216924 PA |
4 | |
5 | This program is free software; you can redistribute it and/or modify | |
6 | it under the terms of the GNU General Public License as published by | |
7 | the Free Software Foundation; either version 3 of the License, or | |
8 | (at your option) any later version. | |
9 | ||
10 | This program is distributed in the hope that it will be useful, | |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | GNU General Public License for more details. | |
14 | ||
15 | You should have received a copy of the GNU General Public License | |
16 | along with this program. If not, see <http://www.gnu.org/licenses/>. */ | |
17 | ||
1a5c2598 TT |
18 | #ifndef CLI_CLI_INTERP_H |
19 | #define CLI_CLI_INTERP_H | |
3c216924 | 20 | |
d6f9b0fb PA |
21 | #include "interps.h" |
22 | ||
23 | /* A console-like interpreter. Implements functionality common to the | |
24 | CLI and the TUI. */ | |
25 | class cli_interp_base : public interp | |
26 | { | |
27 | public: | |
28 | explicit cli_interp_base (const char *name); | |
29 | virtual ~cli_interp_base () = 0; | |
30 | ||
ca1285d1 AH |
31 | void set_logging (ui_file_up logfile, bool logging_redirect, |
32 | bool debug_redirect) override; | |
d6f9b0fb PA |
33 | void pre_command_loop () override; |
34 | bool supports_command_editing () override; | |
19622df1 | 35 | |
3f75a984 | 36 | void on_signal_received (gdb_signal sig) override; |
d6bd2ef5 SM |
37 | void on_signal_exited (gdb_signal sig) override; |
38 | void on_normal_stop (bpstat *bs, int print_frame) override; | |
bf64d1d5 | 39 | void on_exited (int status) override; |
2e5dbfab | 40 | void on_no_history () override; |
c3d321de | 41 | void on_sync_execution_done () override; |
2736b771 | 42 | void on_command_error () override; |
77cd03e2 | 43 | void on_user_selected_context_changed (user_selected_what selection) override; |
3f75a984 | 44 | |
19622df1 TT |
45 | private: |
46 | struct saved_output_files | |
47 | { | |
35254615 | 48 | /* Saved gdb_stdout, gdb_stderr, etc. */ |
19622df1 TT |
49 | ui_file *out; |
50 | ui_file *err; | |
51 | ui_file *log; | |
52 | ui_file *targ; | |
53 | ui_file *targerr; | |
35254615 TT |
54 | /* When redirecting, some or all of these may be non-null |
55 | depending on the logging mode. */ | |
56 | ui_file_up stdout_holder; | |
57 | ui_file_up stderr_holder; | |
58 | ui_file_up stdlog_holder; | |
59 | ui_file_up logfile_holder; | |
19622df1 TT |
60 | }; |
61 | ||
62 | /* These hold the pushed copies of the gdb output files. If NULL | |
63 | then nothing has yet been pushed. */ | |
64 | std::unique_ptr<saved_output_files> m_saved_output; | |
d6f9b0fb | 65 | }; |
3c216924 | 66 | |
26cde2cc PA |
67 | /* Returns true if the current stop should be printed to |
68 | CONSOLE_INTERP. */ | |
69 | extern int should_print_stop_to_console (struct interp *interp, | |
70 | struct thread_info *tp); | |
71 | ||
1a5c2598 | 72 | #endif /* CLI_CLI_INTERP_H */ |