kvm tools: Add debug() helper
PATCH 1/1 kvm tools: Add debug() helper
Useful for debugging. It adds "--debug" option as well so debug prints are seen only if user asked for them.
Signed-off-by Cyrill Gorcunov <[email protected]>
---
No real users in code yet, the patches with debug() are in stage, posted out to not loose it.
Thanks.
tools/kvm/Documentation/kvm-run.txt | 3 +++ tools/kvm/include/kvm/util.h | 10 ++++++++++ tools/kvm/kvm-run.c | 4 ++++ 3 files changed, 17 insertions(+)
tools/kvm/Documentation/kvm-run.txt +3 -0
@@ -55,6 +55,9 @@ OPTIONS --cpus:: The number of virtual CPUs to run. +--debug:: + Enable debug messages. + SEE ALSO -------- linkkvm:
tools/kvm/include/kvm/util.h +10 -0
@@ -15,6 +15,7 @@#include <stdlib.h> #include <stdarg.h> #include <string.h> +#include <stdbool.h> #include <errno.h> #include <limits.h> #include <sys/param.h>
@@ -29,6 +30,8 @@#endif #endif +extern bool do_debug_print; + extern void die(const char *err, ...) NORETURN __attribute__((format (printf, 1, 2))); extern void die_perror(const char *s) NORETURN;extern int error (const char *err, ...) __attribute__((format (printf,1 ,2 )));
@@ -36,6 +39,13 @@ extern void warning(const char *err, ...extern void info (const char *err, ...) __attribute__((format (printf,1 ,2 )));extern void set_die_routine (void (*routine)(const char *err,va_list params)NORETURN ); +#define debug (fmt, ...) \ + do { \ + if (do_debug_print) \ + info("(%s) %s:%d: " fmt, __FILE__, \ + __func__, __LINE__, ##__VA_ARGS__); \ + } while (0) +#define BUILD_BUG_ON (condition) ((void)sizeof(char[1 - 2*!!(condition)]))#define DIE_IF (cnd) \
tools/kvm/kvm-run.c +4 -0
@@ -66,6 +66,8 @@ static bool virtio_rng;extern bool ioport_debug;extern int active_console; +bool do_debug_print = false; +static int nrcpus =1 ;static const char *const run_usage[] = {
@@ -126,6 +128,8 @@ static const struct option options[] = { "Enable single stepping"),OPT_BOOLEAN ('g' ,"ioport-debug" , &ioport_debug,"Enable ioport debugging" ), +OPT_BOOLEAN ('\0' ,"debug" , &do_debug_print, +"Enable debug messages" ), OPT_END() };