# HG changeset patch # User Kim F. Storm # Date 1131578072 0 # Node ID 06e83e43c7278e77e75d8777a268979805e82132 # Parent aa81a85c6d8e9e94a5d32441c305099605a33cc4 (safe_debug_print): New function to be called from gdb to print Lisp objects; use valid_lisp_object_p to avoid crashing if user tries to print something which is not a Lisp object. diff -r aa81a85c6d8e -r 06e83e43c727 src/print.c --- a/src/print.c Wed Nov 09 23:14:19 2005 +0000 +++ b/src/print.c Wed Nov 09 23:14:32 2005 +0000 @@ -970,6 +970,26 @@ Fprin1 (arg, Qexternal_debugging_output); fprintf (stderr, "\r\n"); } + +void +safe_debug_print (arg) + Lisp_Object arg; +{ + int valid = valid_lisp_object_p (arg); + + if (valid > 0) + debug_print (arg); + else + fprintf (stderr, "#<%s_LISP_OBJECT 0x%08lx>\r\n", + !valid ? "INVALID" : "SOME", +#ifdef NO_UNION_TYPE + (unsigned long) arg +#else + (unsigned long) arg.i +#endif + ); +} + DEFUN ("error-message-string", Ferror_message_string, Serror_message_string, 1, 1, 0,