[PATCH RESEND kvmtool 3/4] util: Use __pr_debug() instead of pr_info() to print debug messages

Alexandru Elisei
2023-06-30T13:32:02Z

pr_debug() is special, because it can be suppressed with a command line
argument, and because it needs to be a macro to capture the correct
filename, function name and line number. Display debug messages with the
prefix "Debug", to make it clear that those aren't informational messages.

Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com>
---
include/kvm/util.h | 3 ++-
util/util.c | 15 +++++++++++++++
2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/include/kvm/util.h b/include/kvm/util.h
index f51f370d2b37..6920ce2630ad 100644
--- a/include/kvm/util.h
+++ b/include/kvm/util.h
@@ -42,12 +42,13 @@ extern void die_perror(const char *s) NORETURN;
extern void pr_err(const char *err, ...) __attribute__((format (printf, 1, 2)));
extern void pr_warning(const char *err, ...) __attribute__((format (printf, 1, 2)));
extern void pr_info(const char *err, ...) __attribute__((format (printf, 1, 2)));
+extern void __pr_debug(const char *err, ...) __attribute__((format (printf, 1, 2)));
extern void set_die_routine(void (*routine)(const char *err, va_list params) NORETURN);

#define pr_debug(fmt, ...) \
do { \
if (do_debug_print) \
- pr_info("(%s) %s:%d: " fmt, __FILE__, \
+ __pr_debug("(%s) %s:%d: " fmt, __FILE__, \
__func__, __LINE__, ##__VA_ARGS__); \
} while (0)

diff --git a/util/util.c b/util/util.c
index f59f26e1581c..e3b36f67f899 100644
--- a/util/util.c
+++ b/util/util.c
@@ -38,6 +38,11 @@ static void info_builtin(const char *info, va_list params)
report(" Info: ", info, params);
}

+static void debug_builtin(const char *info, va_list params)
+{
+ report(" Debug: ", info, params);
+}
+
void die(const char *err, ...)
{
va_list params;
@@ -74,6 +79,16 @@ void pr_info(const char *info, ...)
va_end(params);
}

+/* Do not call directly; call pr_debug() instead. */
+void __pr_debug(const char *info, ...)
+{
+ va_list params;
+
+ va_start(params, info);
+ debug_builtin(info, params);
+ va_end(params);
+}
+
void die_perror(const char *s)
{
perror(s);
--
2.41.0