diff mbox

[v3] block: always compile-check debug prints

Message ID 1461898826-24113-1-git-send-email-zhoujie2011@cn.fujitsu.com (mailing list archive)
State New, archived
Headers show

Commit Message

Zhou Jie April 29, 2016, 3 a.m. UTC
Files with conditional debug statements should ensure that the printf is
always compiled.
This prevents bitrot of the format string of the debug statement.

Signed-off-by: Zhou Jie <zhoujie2011@cn.fujitsu.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
---
v1 -> v2:
 * Keep the user-visible witness as defined/undefined,
   and create a secondary witness as the actual conditional.
 * Switch debug output to stderr.

v2 -> v3:
 * Alter commit message to add "Reviewed-by ...".

 block/curl.c     | 10 ++++++++--
 block/sheepdog.c | 13 ++++++++-----
 2 files changed, 16 insertions(+), 7 deletions(-)

Comments

Eric Blake April 29, 2016, 4:15 a.m. UTC | #1
On 04/28/2016 09:00 PM, Zhou Jie wrote:
> Files with conditional debug statements should ensure that the printf is
> always compiled.
> This prevents bitrot of the format string of the debug statement.

Still missing a sentence about the intentional change to use stderr.

> 
> Signed-off-by: Zhou Jie <zhoujie2011@cn.fujitsu.com>
> Reviewed-by: Eric Blake <eblake@redhat.com>
> ---
> v1 -> v2:
>  * Keep the user-visible witness as defined/undefined,
>    and create a secondary witness as the actual conditional.
>  * Switch debug output to stderr.

You have it here, but anything after the --- separator gets stripped by
'git am', while we want the change to stderr to be documented as part of
the permanent commit log.
diff mbox

Patch

diff --git a/block/curl.c b/block/curl.c
index 5a8f8b6..da9f5e8 100644
--- a/block/curl.c
+++ b/block/curl.c
@@ -36,10 +36,16 @@ 
 // #define DEBUG_VERBOSE
 
 #ifdef DEBUG_CURL
-#define DPRINTF(fmt, ...) do { printf(fmt, ## __VA_ARGS__); } while (0)
+#define DEBUG_CURL_PRINT 1
 #else
-#define DPRINTF(fmt, ...) do { } while (0)
+#define DEBUG_CURL_PRINT 0
 #endif
+#define DPRINTF(fmt, ...)                                            \
+    do {                                                             \
+        if (DEBUG_CURL_PRINT) {                                      \
+            fprintf(stderr, fmt, ## __VA_ARGS__);                    \
+        }                                                            \
+    } while (0)
 
 #if LIBCURL_VERSION_NUM >= 0x071000
 /* The multi interface timer callback was introduced in 7.16.0 */
diff --git a/block/sheepdog.c b/block/sheepdog.c
index 33e0a33..9023686 100644
--- a/block/sheepdog.c
+++ b/block/sheepdog.c
@@ -294,13 +294,16 @@  static inline size_t count_data_objs(const struct SheepdogInode *inode)
 
 #undef DPRINTF
 #ifdef DEBUG_SDOG
-#define DPRINTF(fmt, args...)                                       \
-    do {                                                            \
-        fprintf(stdout, "%s %d: " fmt, __func__, __LINE__, ##args); \
-    } while (0)
+#define DEBUG_SDOG_PRINT 1
 #else
-#define DPRINTF(fmt, args...)
+#define DEBUG_SDOG_PRINT 0
 #endif
+#define DPRINTF(fmt, args...)                                           \
+    do {                                                                \
+        if (DEBUG_SDOG_PRINT) {                                         \
+            fprintf(stderr, "%s %d: " fmt, __func__, __LINE__, ##args); \
+        }                                                               \
+    } while (0)
 
 typedef struct SheepdogAIOCB SheepdogAIOCB;