From 8abd61339db0f6eb9622ea749107e8ec1a4c64b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Thu, 5 Nov 2009 21:18:26 +0000 Subject: [PATCH] gstconfig.h: add define to force printf format checking for debug messages Force printf format checking for debug messages if GST_DISABLE_PRINTF_EXTENSION is defined. This is useful to quickly check code for printf format mismatches in debugging messages that would usually not be caught (with glibc+gcc and printf extensions being used). To use: make clean; make CFLAGS='-g -O2 -DGST_DISABLE_PRINTF_EXTENSION' --- gst/gstconfig.h.in | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gst/gstconfig.h.in b/gst/gstconfig.h.in index 43725a5556..a849ecb875 100644 --- a/gst/gstconfig.h.in +++ b/gst/gstconfig.h.in @@ -156,6 +156,32 @@ * header files so we know whether we can use G_GNUC_PRINTF or not */ @GST_USING_PRINTF_EXTENSION_DEFINE@ +/* GST_DISABLE_PRINTF_EXTENSION: + * + * Define this to debug your debug log messages and make gcc spew warnings + * if printf format string and arguments don't match up (this is usually + * not the case when libc and gcc are used because printf format warnings + * have to be disabled when the printf extension mechanism is in use). + * + * Note that using this option disables 'pretty logging' of GStreamer objects + * like caps, tags, structures, events, pads etc., so that only their address + * will be printed in the log. + * + * This define only disables use of the special registered printf format + * extensions in the code compiled with it defined. It does not stop + * GStreamer from registering these extensions in the first place if it + * was compiled against a libc that supports this. + * + * (not official API) + */ +#ifdef GST_DISABLE_PRINTF_EXTENSION + #undef GST_PTR_FORMAT + #define GST_PTR_FORMAT "p" + #undef GST_SEGMENT_FORMAT + #define GST_SEGMENT_FORMAT "p" + #undef GST_USING_PRINTF_EXTENSION +#endif + /* whether or not the CPU supports unaligned access */ @GST_HAVE_UNALIGNED_ACCESS_DEFINE@