Message ID | 20230630133134.65284-4-alexandru.elisei@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add --loglevel argument | expand |
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 >
Hi, On Tue, Jul 04, 2023 at 10:50:04AM +0100, Jean-Philippe Brucker wrote: > 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> Thanks, changed the parameter to be called debug. Alex > > (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 > >
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);
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(-)