From bd90dcd000bbc315b26153f091ce6a2ac592f1d7 Mon Sep 17 00:00:00 2001 From: "Kim F. Storm" Date: Wed, 9 Nov 2005 23:14:32 +0000 Subject: [PATCH] (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. --- src/print.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) 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, -- 2.39.2