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

Jean-Philippe Brucker
2023-07-04T09:50:10Z

On Fri, Jun 30, 2023 at 02:31:33PM +0100, Alexandru Elisei wrote:
> 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>

Reviewed-by: Jean-Philippe Brucker <jean-philippe@linaro.org>

(nit below)

> ---
> 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)

parameter here and in __pr_debug could be called 'debug' for consistency

> +{
> + 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
>