define xreload
set $tagmask = ((1 << gdb_gctypebits) - 1)
- # The consing_since_gc business widens the 1 to EMACS_INT,
- # a symbol not directly visible to GDB.
- set $valmask = gdb_use_lsb ? ~($tagmask) : ((consing_since_gc - consing_since_gc + 1) << gdb_valbits) - 1
+ set $valmask = gdb_use_lsb ? ~($tagmask) : ((EMACS_INT) 1 << gdb_valbits) - 1
end
document xreload
When starting Emacs a second time in the same gdb session under
+2012-07-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ Use typedef for EMACS_INT, EMACS_UINT.
+ * lisp.h, s/ms-w32.h (EMACS_INT, EMACS_UINT): Use typedefs rather
+ than macros. This simplifies debugging in the usual case, since
+ it lets GDB show addresses as 'EMACS_INT *' rather than 'long int *'
+ and it allows expressions involving EMACS_INT casts.
+ * .gdbinit (xreload): Simplify by using EMACS_INT cast.
+
2012-07-25 Jan Djärv <jan.h.d@swipnet.se>
* nsterm.m (ns_read_socket): Return early if there is a modal
EMACS_INT_MAX - maximum value of EMACS_INT; can be used in #if
pI - printf length modifier for EMACS_INT
EMACS_UINT - unsigned variant of EMACS_INT */
-#ifndef EMACS_INT
+#ifndef EMACS_INT_MAX
# if LONG_MAX < LLONG_MAX && defined WIDE_EMACS_INT
-# define EMACS_INT long long
+typedef long long int EMACS_INT;
+typedef unsigned long long int EMACS_UINT;
# define EMACS_INT_MAX LLONG_MAX
# define pI "ll"
# elif INT_MAX < LONG_MAX
-# define EMACS_INT long
+typedef long int EMACS_INT;
+typedef unsigned long int EMACS_UINT;
# define EMACS_INT_MAX LONG_MAX
# define pI "l"
# else
-# define EMACS_INT int
+typedef int EMACS_INT;
+typedef unsigned int EMACS_UINT;
# define EMACS_INT_MAX INT_MAX
# define pI ""
# endif
#endif
-#define EMACS_UINT unsigned EMACS_INT
/* Number of bits in some machine integer types. */
enum
# ifdef WIDE_EMACS_INT
/* Use pre-C99-style 64-bit integers. */
-# define EMACS_INT __int64
+typedef __int64 EMACS_INT;
+typedef unsigned __int64 EMACS_UINT;
# define EMACS_INT_MAX _I64_MAX
# define pI "I64"