* [PATCH 1/7] gdb: move declarations of check_quit_flag and set_quit_flag to extension.h
2024-04-23 13:22 [PATCH 0/7] More cleanup of defs.h Simon Marchi
@ 2024-04-23 13:22 ` Simon Marchi
2024-04-25 8:52 ` Alexandra Petlanova Hajkova
2024-04-23 13:22 ` [PATCH 2/7] gdb: change return type of check_quit_flag to bool Simon Marchi
` (6 subsequent siblings)
7 siblings, 1 reply; 13+ messages in thread
From: Simon Marchi @ 2024-04-23 13:22 UTC (permalink / raw)
To: gdb-patches; +Cc: Simon Marchi
Move them out of defs.h, to extension.h, since the implementations are
in extension.c.
Change-Id: Ie7321468bd7fecc684d70b09f72c3ee8ac75d8f4
---
gdb/defs.h | 19 -------------------
gdb/extension.c | 17 ++++-------------
gdb/extension.h | 30 ++++++++++++++++++++++++++++++
3 files changed, 34 insertions(+), 32 deletions(-)
diff --git a/gdb/defs.h b/gdb/defs.h
index 91724d30195f..6f9c0d1f781a 100644
--- a/gdb/defs.h
+++ b/gdb/defs.h
@@ -94,25 +94,6 @@ extern std::string python_libdir;
/* * Search path for separate debug files. */
extern std::string debug_file_directory;
-/* GDB's SIGINT handler basically sets a flag; code that might take a
- long time before it gets back to the event loop, and which ought to
- be interruptible, checks this flag using the QUIT macro, which, if
- GDB has the terminal, throws a quit exception.
-
- In addition to setting a flag, the SIGINT handler also marks a
- select/poll-able file descriptor as read-ready. That is used by
- interruptible_select in order to support interrupting blocking I/O
- in a race-free manner.
-
- These functions use the extension_language_ops API to allow extension
- language(s) and GDB SIGINT handling to coexist seamlessly. */
-
-/* * Evaluate to non-zero if the quit flag is set, zero otherwise. This
- will clear the quit flag as a side effect. */
-extern int check_quit_flag (void);
-/* * Set the quit flag. */
-extern void set_quit_flag (void);
-
/* The current quit handler (and its type). This is called from the
QUIT macro. See default_quit_handler below for default behavior.
Parts of GDB temporarily override this to e.g., completely suppress
diff --git a/gdb/extension.c b/gdb/extension.c
index f4bdcc1f6110..2d692d054315 100644
--- a/gdb/extension.c
+++ b/gdb/extension.c
@@ -863,16 +863,10 @@ restore_active_ext_lang (struct active_ext_lang_state *previous)
xfree (previous);
}
-/* Set the quit flag.
- This only sets the flag in the currently active extension language.
- If the currently active extension language does not have cooperative
- SIGINT handling, then GDB's global flag is set, and it is up to the
- extension language to call check_quit_flag. The extension language
- is free to install its own SIGINT handler, but we still need to handle
- the transition. */
+/* See extension.h. */
void
-set_quit_flag (void)
+set_quit_flag ()
{
#if CXX_STD_THREAD
std::lock_guard guard (ext_lang_mutex);
@@ -894,13 +888,10 @@ set_quit_flag (void)
}
}
-/* Return true if the quit flag has been set, false otherwise.
- Note: The flag is cleared as a side-effect.
- The flag is checked in all extension languages that support cooperative
- SIGINT handling, not just the current one. This simplifies transitions. */
+/* See extension.h. */
int
-check_quit_flag (void)
+check_quit_flag ()
{
#if CXX_STD_THREAD
std::lock_guard guard (ext_lang_mutex);
diff --git a/gdb/extension.h b/gdb/extension.h
index 9ba1299f95e1..94a500d74586 100644
--- a/gdb/extension.h
+++ b/gdb/extension.h
@@ -429,4 +429,34 @@ class scoped_disable_cooperative_sigint_handling
bool m_prev_cooperative_sigint_handling_disabled;
};
+/* GDB's SIGINT handler basically sets a flag; code that might take a
+ long time before it gets back to the event loop, and which ought to
+ be interruptible, checks this flag using the QUIT macro, which, if
+ GDB has the terminal, throws a quit exception.
+
+ In addition to setting a flag, the SIGINT handler also marks a
+ select/poll-able file descriptor as read-ready. That is used by
+ interruptible_select in order to support interrupting blocking I/O
+ in a race-free manner.
+
+ These functions use the extension_language_ops API to allow extension
+ language(s) and GDB SIGINT handling to coexist seamlessly. */
+
+/* Return true if the quit flag has been set, false otherwise.
+ Note: The flag is cleared as a side-effect.
+ The flag is checked in all extension languages that support cooperative
+ SIGINT handling, not just the current one. This simplifies transitions. */
+
+extern int check_quit_flag ();
+
+/* Set the quit flag.
+ This only sets the flag in the currently active extension language.
+ If the currently active extension language does not have cooperative
+ SIGINT handling, then GDB's global flag is set, and it is up to the
+ extension language to call check_quit_flag. The extension language
+ is free to install its own SIGINT handler, but we still need to handle
+ the transition. */
+
+extern void set_quit_flag ();
+
#endif /* EXTENSION_H */
--
2.44.0
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 4/7] gdb: move a bunch of quit-related things to event-top.{c,h}
2024-04-23 13:22 [PATCH 0/7] More cleanup of defs.h Simon Marchi
` (2 preceding siblings ...)
2024-04-23 13:22 ` [PATCH 3/7] gdb: change type of quit_flag " Simon Marchi
@ 2024-04-23 13:22 ` Simon Marchi
2024-04-23 13:23 ` [PATCH 5/7] gdb: move annotation_level declaration/definition to annotate.{h,c} Simon Marchi
` (3 subsequent siblings)
7 siblings, 0 replies; 13+ messages in thread
From: Simon Marchi @ 2024-04-23 13:22 UTC (permalink / raw)
To: gdb-patches; +Cc: Simon Marchi
Move some declarations related to the "quit" machinery from defs.h to
event-top.h. Most of the definitions associated to these declarations
are in event-top.c. The exceptions are `quit()` and `maybe_quit()`,
that are defined in utils.c. For consistency, move these two
definitions to event-top.c.
Include "event-top.h" in many files that use these things.
Change-Id: I6594f6df9047a9a480e7b9934275d186afb14378
---
gdb/ada-lang.c | 1 +
gdb/ada-typeprint.c | 1 +
gdb/ada-valprint.c | 1 +
gdb/addrmap.c | 1 +
gdb/amd64-windows-tdep.c | 1 +
gdb/breakpoint.c | 1 +
gdb/c-typeprint.c | 1 +
gdb/cli/cli-script.c | 1 +
gdb/coffread.c | 1 +
gdb/corefile.c | 1 +
gdb/cp-valprint.c | 1 +
gdb/dbxread.c | 1 +
gdb/defs.h | 44 -------------------------------
gdb/disasm.c | 1 +
gdb/dwarf2/cooked-index.c | 1 +
gdb/dwarf2/expr.c | 1 +
gdb/dwarf2/loc.c | 1 +
gdb/dwarf2/read-gdb-index.c | 1 +
gdb/dwarf2/read.c | 1 +
gdb/event-top.c | 48 +++++++++++++++++++++++++++++++---
gdb/event-top.h | 52 +++++++++++++++++++++++++++++++++++++
gdb/f-typeprint.c | 1 +
gdb/findvar.c | 1 +
gdb/frame.c | 1 +
gdb/gdb_bfd.c | 1 +
gdb/linux-fork.c | 1 +
gdb/m2-lang.c | 1 +
gdb/m2-typeprint.c | 1 +
gdb/mi/mi-cmd-stack.c | 1 +
gdb/objc-lang.c | 1 +
gdb/p-lang.c | 1 +
gdb/p-typeprint.c | 1 +
gdb/printcmd.c | 1 +
gdb/psymtab.c | 1 +
gdb/remote-fileio.c | 1 +
gdb/remote-sim.c | 1 +
gdb/rust-lang.c | 1 +
gdb/ser-base.c | 1 +
gdb/skip.c | 1 +
gdb/solib-rocm.c | 1 +
gdb/sparc64-tdep.c | 1 +
gdb/stabsread.c | 1 +
gdb/stack.c | 1 +
gdb/symmisc.c | 1 +
gdb/symtab.c | 1 +
gdb/tracepoint.c | 1 +
gdb/tui/tui.c | 1 +
gdb/utils.c | 41 -----------------------------
gdb/valops.c | 1 +
gdb/valprint.c | 1 +
gdb/xcoffread.c | 1 +
51 files changed, 144 insertions(+), 88 deletions(-)
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 5ab6e8b14b72..e33a746da9e8 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -19,6 +19,7 @@
#include <ctype.h>
+#include "event-top.h"
#include "extract-store-integer.h"
#include "gdbsupport/gdb_regex.h"
#include "frame.h"
diff --git a/gdb/ada-typeprint.c b/gdb/ada-typeprint.c
index deead1055dbf..915f8b54d50e 100644
--- a/gdb/ada-typeprint.c
+++ b/gdb/ada-typeprint.c
@@ -17,6 +17,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "bfd.h"
+#include "event-top.h"
#include "gdbtypes.h"
#include "value.h"
#include "c-lang.h"
diff --git a/gdb/ada-valprint.c b/gdb/ada-valprint.c
index 6d3fca9bdeba..937bd39e87db 100644
--- a/gdb/ada-valprint.c
+++ b/gdb/ada-valprint.c
@@ -18,6 +18,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include <ctype.h>
+#include "event-top.h"
#include "extract-store-integer.h"
#include "gdbtypes.h"
#include "expression.h"
diff --git a/gdb/addrmap.c b/gdb/addrmap.c
index c6e037330ecc..b9a0f77d5d0b 100644
--- a/gdb/addrmap.c
+++ b/gdb/addrmap.c
@@ -17,6 +17,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#include "event-top.h"
#include "gdbsupport/gdb_obstack.h"
#include "addrmap.h"
#include "gdbsupport/selftest.h"
diff --git a/gdb/amd64-windows-tdep.c b/gdb/amd64-windows-tdep.c
index 3dfc80005339..9636201d13a6 100644
--- a/gdb/amd64-windows-tdep.c
+++ b/gdb/amd64-windows-tdep.c
@@ -15,6 +15,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#include "event-top.h"
#include "extract-store-integer.h"
#include "osabi.h"
#include "amd64-tdep.h"
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index 6d8adc626643..03e073d78792 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -19,6 +19,7 @@
#include "arch-utils.h"
#include <ctype.h>
+#include "event-top.h"
#include "hashtab.h"
#include "symtab.h"
#include "frame.h"
diff --git a/gdb/c-typeprint.c b/gdb/c-typeprint.c
index 3e299356308c..62cf7219a415 100644
--- a/gdb/c-typeprint.c
+++ b/gdb/c-typeprint.c
@@ -16,6 +16,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#include "event-top.h"
#include "gdbsupport/gdb_obstack.h"
#include "bfd.h"
#include "symtab.h"
diff --git a/gdb/cli/cli-script.c b/gdb/cli/cli-script.c
index 2f731807c94f..03e0a2e43e3c 100644
--- a/gdb/cli/cli-script.c
+++ b/gdb/cli/cli-script.c
@@ -17,6 +17,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#include "event-top.h"
#include "value.h"
#include <ctype.h>
diff --git a/gdb/coffread.c b/gdb/coffread.c
index 327c014a5a4c..daae3ffe989c 100644
--- a/gdb/coffread.c
+++ b/gdb/coffread.c
@@ -17,6 +17,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#include "event-top.h"
#include "symtab.h"
#include "gdbtypes.h"
#include "demangle.h"
diff --git a/gdb/corefile.c b/gdb/corefile.c
index 984c7bef8800..8caf3bff383f 100644
--- a/gdb/corefile.c
+++ b/gdb/corefile.c
@@ -19,6 +19,7 @@
#include <signal.h>
#include <fcntl.h>
+#include "event-top.h"
#include "extract-store-integer.h"
#include "inferior.h"
#include "symtab.h"
diff --git a/gdb/cp-valprint.c b/gdb/cp-valprint.c
index 2e776f40a637..ae28882e1789 100644
--- a/gdb/cp-valprint.c
+++ b/gdb/cp-valprint.c
@@ -17,6 +17,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#include "event-top.h"
#include "extract-store-integer.h"
#include "gdbsupport/gdb_obstack.h"
#include "symtab.h"
diff --git a/gdb/dbxread.c b/gdb/dbxread.c
index 9faaf0e7381b..830dd1cc6112 100644
--- a/gdb/dbxread.c
+++ b/gdb/dbxread.c
@@ -31,6 +31,7 @@
for real. dbx_psymtab_to_symtab() is the function that does this */
+#include "event-top.h"
#include "gdbsupport/gdb_obstack.h"
#include <sys/stat.h>
#include "symtab.h"
diff --git a/gdb/defs.h b/gdb/defs.h
index 6f9c0d1f781a..11e2190c3e4a 100644
--- a/gdb/defs.h
+++ b/gdb/defs.h
@@ -94,50 +94,6 @@ extern std::string python_libdir;
/* * Search path for separate debug files. */
extern std::string debug_file_directory;
-/* The current quit handler (and its type). This is called from the
- QUIT macro. See default_quit_handler below for default behavior.
- Parts of GDB temporarily override this to e.g., completely suppress
- Ctrl-C because it would not be safe to throw. E.g., normally, you
- wouldn't want to quit between a RSP command and its response, as
- that would break the communication with the target, but you may
- still want to intercept the Ctrl-C and offer to disconnect if the
- user presses Ctrl-C multiple times while the target is stuck
- waiting for the wedged remote stub. */
-typedef void (quit_handler_ftype) (void);
-extern quit_handler_ftype *quit_handler;
-
-/* The default quit handler. Checks whether Ctrl-C was pressed, and
- if so:
-
- - If GDB owns the terminal, throws a quit exception.
-
- - If GDB does not own the terminal, forwards the Ctrl-C to the
- target.
-*/
-extern void default_quit_handler (void);
-
-/* Flag that function quit should call quit_force. */
-extern volatile bool sync_quit_force_run;
-
-/* Set sync_quit_force_run and also call set_quit_flag(). */
-extern void set_force_quit_flag ();
-
-extern void quit (void);
-
-/* Helper for the QUIT macro. */
-
-extern void maybe_quit (void);
-
-/* Check whether a Ctrl-C was typed, and if so, call the current quit
- handler. */
-#define QUIT maybe_quit ()
-
-/* Set the serial event associated with the quit flag. */
-extern void quit_serial_event_set (void);
-
-/* Clear the serial event associated with the quit flag. */
-extern void quit_serial_event_clear (void);
-
/* * Languages represented in the symbol table and elsewhere.
This should probably be in language.h, but since enum's can't
be forward declared to satisfy opaque references before their
diff --git a/gdb/disasm.c b/gdb/disasm.c
index da6f3afba7a1..e54b8521dde3 100644
--- a/gdb/disasm.c
+++ b/gdb/disasm.c
@@ -18,6 +18,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "arch-utils.h"
+#include "event-top.h"
#include "target.h"
#include "value.h"
#include "ui-out.h"
diff --git a/gdb/dwarf2/cooked-index.c b/gdb/dwarf2/cooked-index.c
index 190ceebe1608..3b95c075a557 100644
--- a/gdb/dwarf2/cooked-index.c
+++ b/gdb/dwarf2/cooked-index.c
@@ -24,6 +24,7 @@
#include "cp-support.h"
#include "c-lang.h"
#include "ada-lang.h"
+#include "event-top.h"
#include "split-name.h"
#include "observable.h"
#include "run-on-main-thread.h"
diff --git a/gdb/dwarf2/expr.c b/gdb/dwarf2/expr.c
index d92facbf0dcf..cb80dbf60b1f 100644
--- a/gdb/dwarf2/expr.c
+++ b/gdb/dwarf2/expr.c
@@ -20,6 +20,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "block.h"
+#include "event-top.h"
#include "symtab.h"
#include "gdbtypes.h"
#include "value.h"
diff --git a/gdb/dwarf2/loc.c b/gdb/dwarf2/loc.c
index 205d2ba56cbb..23c57bde9391 100644
--- a/gdb/dwarf2/loc.c
+++ b/gdb/dwarf2/loc.c
@@ -19,6 +19,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#include "event-top.h"
#include "ui-out.h"
#include "value.h"
#include "frame.h"
diff --git a/gdb/dwarf2/read-gdb-index.c b/gdb/dwarf2/read-gdb-index.c
index 8c0895b96393..e743ce13978d 100644
--- a/gdb/dwarf2/read-gdb-index.c
+++ b/gdb/dwarf2/read-gdb-index.c
@@ -22,6 +22,7 @@
#include "cli/cli-cmds.h"
#include "complaints.h"
#include "dwz.h"
+#include "event-top.h"
#include "gdb/gdb-index.h"
#include "gdbsupport/gdb-checked-static-cast.h"
#include "mapped-index.h"
diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
index af69e1d9d9e9..9480a8781cc2 100644
--- a/gdb/dwarf2/read.c
+++ b/gdb/dwarf2/read.c
@@ -47,6 +47,7 @@
#include "dwarf2/public.h"
#include "bfd.h"
#include "elf-bfd.h"
+#include "event-top.h"
#include "symtab.h"
#include "gdbtypes.h"
#include "objfiles.h"
diff --git a/gdb/event-top.c b/gdb/event-top.c
index 8411ec5028a5..2fcbad6b937b 100644
--- a/gdb/event-top.c
+++ b/gdb/event-top.c
@@ -19,6 +19,8 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#include "gdbsupport/job-control.h"
+#include "run-on-main-thread.h"
#include "top.h"
#include "ui.h"
#include "inferior.h"
@@ -1062,15 +1064,55 @@ gdb_init_signals (void)
install_handle_sigsegv ();
}
-/* See defs.h. */
+/* See event-top.h. */
void
-quit_serial_event_set (void)
+quit (void)
+{
+ if (sync_quit_force_run)
+ {
+ sync_quit_force_run = false;
+ throw_forced_quit ("SIGTERM");
+ }
+
+#ifdef __MSDOS__
+ /* No steenking SIGINT will ever be coming our way when the
+ program is resumed. Don't lie. */
+ throw_quit ("Quit");
+#else
+ if (job_control
+ /* If there is no terminal switching for this target, then we can't
+ possibly get screwed by the lack of job control. */
+ || !target_supports_terminal_ours ())
+ throw_quit ("Quit");
+ else
+ throw_quit ("Quit (expect signal SIGINT when the program is resumed)");
+#endif
+}
+
+/* See event-top.h. */
+
+void
+maybe_quit ()
+{
+ if (!is_main_thread ())
+ return;
+
+ if (sync_quit_force_run)
+ quit ();
+
+ quit_handler ();
+}
+
+/* See event-top.h. */
+
+void
+quit_serial_event_set ()
{
serial_event_set (quit_serial_event);
}
-/* See defs.h. */
+/* See event-top.h. */
void
quit_serial_event_clear (void)
diff --git a/gdb/event-top.h b/gdb/event-top.h
index f431f2812b21..846d1e482893 100644
--- a/gdb/event-top.h
+++ b/gdb/event-top.h
@@ -26,9 +26,61 @@
struct cmd_list_element;
+/* The current quit handler (and its type). This is called from the
+ QUIT macro. See default_quit_handler below for default behavior.
+ Parts of GDB temporarily override this to e.g., completely suppress
+ Ctrl-C because it would not be safe to throw. E.g., normally, you
+ wouldn't want to quit between a RSP command and its response, as
+ that would break the communication with the target, but you may
+ still want to intercept the Ctrl-C and offer to disconnect if the
+ user presses Ctrl-C multiple times while the target is stuck
+ waiting for the wedged remote stub. */
+typedef void (quit_handler_ftype) ();
+extern quit_handler_ftype *quit_handler;
+
/* Exported functions from event-top.c.
FIXME: these should really go into top.h. */
+/* The default quit handler. Checks whether Ctrl-C was pressed, and
+ if so:
+
+ - If GDB owns the terminal, throws a quit exception.
+
+ - If GDB does not own the terminal, forwards the Ctrl-C to the
+ target.
+*/
+
+extern void default_quit_handler ();
+
+/* Flag that function quit should call quit_force. */
+
+extern volatile bool sync_quit_force_run;
+
+/* Set sync_quit_force_run and also call set_quit_flag(). */
+
+extern void set_force_quit_flag ();
+
+/* Control C eventually causes this to be called, at a convenient time. */
+
+extern void quit ();
+
+/* Helper for the QUIT macro. */
+
+extern void maybe_quit ();
+
+/* Check whether a Ctrl-C was typed, and if so, call the current quit
+ handler. */
+
+#define QUIT maybe_quit ()
+
+/* Set the serial event associated with the quit flag. */
+
+extern void quit_serial_event_set ();
+
+/* Clear the serial event associated with the quit flag. */
+
+extern void quit_serial_event_clear ();
+
extern void display_gdb_prompt (const char *new_prompt);
extern void gdb_setup_readline (int);
extern void gdb_disable_readline (void);
diff --git a/gdb/f-typeprint.c b/gdb/f-typeprint.c
index 6e9722dbeb85..42e1cfb871bb 100644
--- a/gdb/f-typeprint.c
+++ b/gdb/f-typeprint.c
@@ -20,6 +20,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#include "event-top.h"
#include "gdbsupport/gdb_obstack.h"
#include "bfd.h"
#include "symtab.h"
diff --git a/gdb/findvar.c b/gdb/findvar.c
index 660eb11c8b8e..df4ab1a28b9d 100644
--- a/gdb/findvar.c
+++ b/gdb/findvar.c
@@ -17,6 +17,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#include "event-top.h"
#include "extract-store-integer.h"
#include "symtab.h"
#include "gdbtypes.h"
diff --git a/gdb/frame.c b/gdb/frame.c
index 719fa051afc6..0232bdb6865c 100644
--- a/gdb/frame.c
+++ b/gdb/frame.c
@@ -18,6 +18,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "frame.h"
+#include "event-top.h"
#include "extract-store-integer.h"
#include "target.h"
#include "value.h"
diff --git a/gdb/gdb_bfd.c b/gdb/gdb_bfd.c
index 1462aaf0f89c..6e97b2168139 100644
--- a/gdb/gdb_bfd.c
+++ b/gdb/gdb_bfd.c
@@ -18,6 +18,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "gdb_bfd.h"
+#include "event-top.h"
#include "ui-out.h"
#include "gdbcmd.h"
#include "hashtab.h"
diff --git a/gdb/linux-fork.c b/gdb/linux-fork.c
index bb8119a36d05..867cb187c8af 100644
--- a/gdb/linux-fork.c
+++ b/gdb/linux-fork.c
@@ -18,6 +18,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "arch-utils.h"
+#include "event-top.h"
#include "inferior.h"
#include "infrun.h"
#include "regcache.h"
diff --git a/gdb/m2-lang.c b/gdb/m2-lang.c
index 86fef96dec18..5e9faa67de39 100644
--- a/gdb/m2-lang.c
+++ b/gdb/m2-lang.c
@@ -17,6 +17,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#include "event-top.h"
#include "symtab.h"
#include "gdbtypes.h"
#include "expression.h"
diff --git a/gdb/m2-typeprint.c b/gdb/m2-typeprint.c
index 32cc930cfb8d..c0ae72203c32 100644
--- a/gdb/m2-typeprint.c
+++ b/gdb/m2-typeprint.c
@@ -16,6 +16,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#include "event-top.h"
#include "language.h"
#include "gdbsupport/gdb_obstack.h"
#include "bfd.h"
diff --git a/gdb/mi/mi-cmd-stack.c b/gdb/mi/mi-cmd-stack.c
index b78c169e70bc..5e504283fcfc 100644
--- a/gdb/mi/mi-cmd-stack.c
+++ b/gdb/mi/mi-cmd-stack.c
@@ -17,6 +17,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#include "event-top.h"
#include "target.h"
#include "frame.h"
#include "value.h"
diff --git a/gdb/objc-lang.c b/gdb/objc-lang.c
index e492c82845b3..b36816898a5e 100644
--- a/gdb/objc-lang.c
+++ b/gdb/objc-lang.c
@@ -20,6 +20,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#include "event-top.h"
#include "symtab.h"
#include "gdbtypes.h"
#include "expression.h"
diff --git a/gdb/p-lang.c b/gdb/p-lang.c
index ddacccce1b29..d3d491c54cd2 100644
--- a/gdb/p-lang.c
+++ b/gdb/p-lang.c
@@ -19,6 +19,7 @@
/* This file is derived from c-lang.c */
+#include "event-top.h"
#include "extract-store-integer.h"
#include "symtab.h"
#include "gdbtypes.h"
diff --git a/gdb/p-typeprint.c b/gdb/p-typeprint.c
index ad98d9ef2025..95a7f6041c1d 100644
--- a/gdb/p-typeprint.c
+++ b/gdb/p-typeprint.c
@@ -18,6 +18,7 @@
/* This file is derived from p-typeprint.c */
+#include "event-top.h"
#include "gdbsupport/gdb_obstack.h"
#include "bfd.h"
#include "symtab.h"
diff --git a/gdb/printcmd.c b/gdb/printcmd.c
index 79da7ea4e22e..66669f105c5c 100644
--- a/gdb/printcmd.c
+++ b/gdb/printcmd.c
@@ -17,6 +17,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#include "event-top.h"
#include "extract-store-integer.h"
#include "frame.h"
#include "symtab.h"
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index a4f5b04627c2..8edadf3a335b 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -17,6 +17,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#include "event-top.h"
#include "symtab.h"
#include "objfiles.h"
#include "psymtab.h"
diff --git a/gdb/remote-fileio.c b/gdb/remote-fileio.c
index 934ba3f8281d..bdb3c22b6923 100644
--- a/gdb/remote-fileio.c
+++ b/gdb/remote-fileio.c
@@ -19,6 +19,7 @@
/* See the GDB User Guide for details of the GDB remote protocol. */
+#include "event-top.h"
#include "extract-store-integer.h"
#include "gdbcmd.h"
#include "remote.h"
diff --git a/gdb/remote-sim.c b/gdb/remote-sim.c
index 5fccefe93a16..38d7f5b7c0f5 100644
--- a/gdb/remote-sim.c
+++ b/gdb/remote-sim.c
@@ -20,6 +20,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#include "event-top.h"
#include "gdb_bfd.h"
#include "inferior.h"
#include "infrun.h"
diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c
index 53e7356c451e..e7fdc287dbc4 100644
--- a/gdb/rust-lang.c
+++ b/gdb/rust-lang.c
@@ -25,6 +25,7 @@
#include "charset.h"
#include "cp-support.h"
#include "demangle.h"
+#include "event-top.h"
#include "gdbarch.h"
#include "infcall.h"
#include "objfiles.h"
diff --git a/gdb/ser-base.c b/gdb/ser-base.c
index ccf38d2202b6..81ef942c55f5 100644
--- a/gdb/ser-base.c
+++ b/gdb/ser-base.c
@@ -17,6 +17,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#include "event-top.h"
#include "serial.h"
#include "ser-base.h"
#include "gdbsupport/event-loop.h"
diff --git a/gdb/skip.c b/gdb/skip.c
index f2818eccb34c..9b8a56cadefa 100644
--- a/gdb/skip.c
+++ b/gdb/skip.c
@@ -16,6 +16,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "skip.h"
+#include "event-top.h"
#include "value.h"
#include "valprint.h"
#include "ui-out.h"
diff --git a/gdb/solib-rocm.c b/gdb/solib-rocm.c
index b714e4ef6cce..9b995c7a3abe 100644
--- a/gdb/solib-rocm.c
+++ b/gdb/solib-rocm.c
@@ -23,6 +23,7 @@
#include "arch-utils.h"
#include "elf-bfd.h"
#include "elf/amdgpu.h"
+#include "event-top.h"
#include "gdbsupport/fileio.h"
#include "inferior.h"
#include "observable.h"
diff --git a/gdb/sparc64-tdep.c b/gdb/sparc64-tdep.c
index 9c8deaac0210..0eaaf506b3c0 100644
--- a/gdb/sparc64-tdep.c
+++ b/gdb/sparc64-tdep.c
@@ -19,6 +19,7 @@
#include "arch-utils.h"
#include "dwarf2/frame.h"
+#include "event-top.h"
#include "extract-store-integer.h"
#include "frame.h"
#include "frame-base.h"
diff --git a/gdb/stabsread.c b/gdb/stabsread.c
index 85fe4000f329..115851962345 100644
--- a/gdb/stabsread.c
+++ b/gdb/stabsread.c
@@ -25,6 +25,7 @@
this file. */
#include "bfd.h"
+#include "event-top.h"
#include "gdbsupport/gdb_obstack.h"
#include "symtab.h"
#include "gdbtypes.h"
diff --git a/gdb/stack.c b/gdb/stack.c
index 2922265515d5..6e9312c0a0d9 100644
--- a/gdb/stack.c
+++ b/gdb/stack.c
@@ -17,6 +17,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#include "event-top.h"
#include "extract-store-integer.h"
#include "value.h"
#include "symtab.h"
diff --git a/gdb/symmisc.c b/gdb/symmisc.c
index f80fc5ab196d..70435996a8ec 100644
--- a/gdb/symmisc.c
+++ b/gdb/symmisc.c
@@ -17,6 +17,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#include "event-top.h"
#include "symtab.h"
#include "gdbtypes.h"
#include "bfd.h"
diff --git a/gdb/symtab.c b/gdb/symtab.c
index d931b3a694b3..63b780bb66ed 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -19,6 +19,7 @@
#include "dwarf2/call-site.h"
#include "symtab.h"
+#include "event-top.h"
#include "gdbtypes.h"
#include "gdbcore.h"
#include "frame.h"
diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c
index 1586a043af69..0c0a94573bb7 100644
--- a/gdb/tracepoint.c
+++ b/gdb/tracepoint.c
@@ -18,6 +18,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "arch-utils.h"
+#include "event-top.h"
#include "symtab.h"
#include "frame.h"
#include "gdbtypes.h"
diff --git a/gdb/tui/tui.c b/gdb/tui/tui.c
index eaee85f82b4e..01e8d7cb9268 100644
--- a/gdb/tui/tui.c
+++ b/gdb/tui/tui.c
@@ -19,6 +19,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#include "event-top.h"
#include "gdbcmd.h"
#include "tui/tui.h"
#include "tui/tui-hooks.h"
diff --git a/gdb/utils.c b/gdb/utils.c
index 04f2d909cd29..8d7ef7e3ad02 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -652,47 +652,6 @@ warning_filename_and_errno (const char *filename, int saved_errno)
safe_strerror (saved_errno));
}
-/* Control C eventually causes this to be called, at a convenient time. */
-
-void
-quit (void)
-{
- if (sync_quit_force_run)
- {
- sync_quit_force_run = false;
- throw_forced_quit ("SIGTERM");
- }
-
-#ifdef __MSDOS__
- /* No steenking SIGINT will ever be coming our way when the
- program is resumed. Don't lie. */
- throw_quit ("Quit");
-#else
- if (job_control
- /* If there is no terminal switching for this target, then we can't
- possibly get screwed by the lack of job control. */
- || !target_supports_terminal_ours ())
- throw_quit ("Quit");
- else
- throw_quit ("Quit (expect signal SIGINT when the program is resumed)");
-#endif
-}
-
-/* See defs.h. */
-
-void
-maybe_quit (void)
-{
- if (!is_main_thread ())
- return;
-
- if (sync_quit_force_run)
- quit ();
-
- quit_handler ();
-}
-
-\f
/* Called when a memory allocation fails, with the number of bytes of
memory requested in SIZE. */
diff --git a/gdb/valops.c b/gdb/valops.c
index f9b54a5d9a93..8eae7cf79953 100644
--- a/gdb/valops.c
+++ b/gdb/valops.c
@@ -17,6 +17,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#include "event-top.h"
#include "extract-store-integer.h"
#include "symtab.h"
#include "gdbtypes.h"
diff --git a/gdb/valprint.c b/gdb/valprint.c
index 13e80c06c9f7..21265ada2ddb 100644
--- a/gdb/valprint.c
+++ b/gdb/valprint.c
@@ -17,6 +17,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#include "event-top.h"
#include "extract-store-integer.h"
#include "symtab.h"
#include "gdbtypes.h"
diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c
index c4914bdcbaf0..639dd5b8adc1 100644
--- a/gdb/xcoffread.c
+++ b/gdb/xcoffread.c
@@ -19,6 +19,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "bfd.h"
+#include "event-top.h"
#include <sys/types.h>
#include <fcntl.h>
--
2.44.0
^ permalink raw reply [flat|nested] 13+ messages in thread