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.
This commit is contained in:
parent
81795bb713
commit
7f129f2ecf
2 changed files with 13 additions and 18 deletions
24
src/.gdbinit
24
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
|
||||
|
||||
|
||||
|
|
|
@ -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__ */
|
||||
|
|
Loading…
Add table
Reference in a new issue