From: Kim F. Storm Date: Wed, 9 Nov 2005 23:14:32 +0000 (+0000) Subject: (safe_debug_print): New function to be called from gdb X-Git-Tag: emacs-pretest-22.0.90~5983 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=bd90dcd000bbc315b26153f091ce6a2ac592f1d7;p=emacs.git (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 --git a/src/print.c b/src/print.c index 91642afd651..d563580ddd3 100644 --- a/src/print.c +++ b/src/print.c @@ -970,6 +970,26 @@ debug_print (arg) 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,