summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2019-03-27 21:51:39 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2019-03-27 21:51:57 -0700
commit7f129f2ecfbdded5c31e9d9fc8bf11ce0e017000 (patch)
treee9631b8b6bebb4b1315c7fbacd5b81d1264ca8fb
parent81795bb71394aac6d7f6f7fd2656b2eb79a39a4d (diff)
downloademacs-7f129f2ecfbdded5c31e9d9fc8bf11ce0e017000.tar.gz
Simpler way to export HAVE_X_WINDOWS to GDB
* src/.gdbinit: Simplify by removing dependency on globals implementation. This is useful for a future performance improvement that I have in mind. * src/alloc.c (enum defined_HAVE_X_WINDOWS, defined_HAVE_X_WINDOWS): New enum and constant. (gdb_make_enums_visible) [__GNUC__]: Use it, to make defined_HAVE_X_WINDOWS visible to GDB.
-rw-r--r--src/.gdbinit24
-rw-r--r--src/alloc.c7
2 files changed, 13 insertions, 18 deletions
diff --git a/src/.gdbinit b/src/.gdbinit
index 7553f07845c..b8b303104f5 100644
--- a/src/.gdbinit
+++ b/src/.gdbinit
@@ -1219,24 +1219,12 @@ show environment TERM
# terminate_due_to_signal when an assertion failure is non-fatal.
break terminate_due_to_signal
-# x_error_quitter is defined only on X. But window-system is set up
-# only at run time, during Emacs startup, so we need to defer setting
-# the breakpoint. init_sys_modes is the first function called on
-# every platform after init_display, where window-system is set.
-tbreak init_sys_modes
-commands
- silent
- xsymname globals.f_Vinitial_window_system
- xgetptr $symname
- set $tem = (struct Lisp_String *) $ptr
- set $tem = (char *) $tem->u.s.data
- # If we are running in synchronous mode, we want a chance to look
- # around before Emacs exits. Perhaps we should put the break
- # somewhere else instead...
- if $tem[0] == 'x' && $tem[1] == '\0'
- break x_error_quitter
- end
- continue
+# x_error_quitter is defined only if defined_HAVE_X_WINDOWS.
+# If we are running in synchronous mode, we want a chance to look
+# around before Emacs exits. Perhaps we should put the break
+# somewhere else instead...
+if defined_HAVE_X_WINDOWS
+ break x_error_quitter
end
diff --git a/src/alloc.c b/src/alloc.c
index 3a8bd30c34b..e48807c49ad 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -7649,6 +7649,12 @@ than 2**N, where N is this variable's value. N should be nonnegative. */);
defsubr (&Ssuspicious_object);
}
+#ifdef HAVE_X_WINDOWS
+enum defined_HAVE_X_WINDOWS { defined_HAVE_X_WINDOWS = true };
+#else
+enum defined_HAVE_X_WINDOWS { defined_HAVE_X_WINDOWS = false };
+#endif
+
/* When compiled with GCC, GDB might say "No enum type named
pvec_type" if we don't have at least one symbol with that type, and
then xbacktrace could fail. Similarly for the other enums and
@@ -7667,5 +7673,6 @@ union
enum MAX_ALLOCA MAX_ALLOCA;
enum More_Lisp_Bits More_Lisp_Bits;
enum pvec_type pvec_type;
+ enum defined_HAVE_X_WINDOWS defined_HAVE_X_WINDOWS;
} const EXTERNALLY_VISIBLE gdb_make_enums_visible = {0};
#endif /* __GNUC__ */