monitor: drop unused monitor debug code
In the old QMP days, this code was used to find out QMP commands that might be calling monitor_printf() down its call chain. This is almost impossible to happen today, because the qapi converted commands don't even have a monitor object. Besides, it's been more than a year since I used this last time. Let's just drop it. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
parent
33e95c6328
commit
74ee59a825
10
configure
vendored
10
configure
vendored
|
@ -171,7 +171,6 @@ vhost_net="no"
|
||||||
kvm="no"
|
kvm="no"
|
||||||
gprof="no"
|
gprof="no"
|
||||||
debug_tcg="no"
|
debug_tcg="no"
|
||||||
debug_mon="no"
|
|
||||||
debug="no"
|
debug="no"
|
||||||
strip_opt="yes"
|
strip_opt="yes"
|
||||||
tcg_interpreter="no"
|
tcg_interpreter="no"
|
||||||
|
@ -657,14 +656,9 @@ for opt do
|
||||||
;;
|
;;
|
||||||
--disable-debug-tcg) debug_tcg="no"
|
--disable-debug-tcg) debug_tcg="no"
|
||||||
;;
|
;;
|
||||||
--enable-debug-mon) debug_mon="yes"
|
|
||||||
;;
|
|
||||||
--disable-debug-mon) debug_mon="no"
|
|
||||||
;;
|
|
||||||
--enable-debug)
|
--enable-debug)
|
||||||
# Enable debugging options that aren't excessively noisy
|
# Enable debugging options that aren't excessively noisy
|
||||||
debug_tcg="yes"
|
debug_tcg="yes"
|
||||||
debug_mon="yes"
|
|
||||||
debug="yes"
|
debug="yes"
|
||||||
strip_opt="no"
|
strip_opt="no"
|
||||||
;;
|
;;
|
||||||
|
@ -3064,7 +3058,6 @@ echo "host CPU $cpu"
|
||||||
echo "host big endian $bigendian"
|
echo "host big endian $bigendian"
|
||||||
echo "target list $target_list"
|
echo "target list $target_list"
|
||||||
echo "tcg debug enabled $debug_tcg"
|
echo "tcg debug enabled $debug_tcg"
|
||||||
echo "Mon debug enabled $debug_mon"
|
|
||||||
echo "gprof enabled $gprof"
|
echo "gprof enabled $gprof"
|
||||||
echo "sparse enabled $sparse"
|
echo "sparse enabled $sparse"
|
||||||
echo "strip binaries $strip_opt"
|
echo "strip binaries $strip_opt"
|
||||||
|
@ -3157,9 +3150,6 @@ echo "ARCH=$ARCH" >> $config_host_mak
|
||||||
if test "$debug_tcg" = "yes" ; then
|
if test "$debug_tcg" = "yes" ; then
|
||||||
echo "CONFIG_DEBUG_TCG=y" >> $config_host_mak
|
echo "CONFIG_DEBUG_TCG=y" >> $config_host_mak
|
||||||
fi
|
fi
|
||||||
if test "$debug_mon" = "yes" ; then
|
|
||||||
echo "CONFIG_DEBUG_MONITOR=y" >> $config_host_mak
|
|
||||||
fi
|
|
||||||
if test "$debug" = "yes" ; then
|
if test "$debug" = "yes" ; then
|
||||||
echo "CONFIG_DEBUG_EXEC=y" >> $config_host_mak
|
echo "CONFIG_DEBUG_EXEC=y" >> $config_host_mak
|
||||||
fi
|
fi
|
||||||
|
|
65
monitor.c
65
monitor.c
|
@ -172,41 +172,11 @@ struct Monitor {
|
||||||
CPUArchState *mon_cpu;
|
CPUArchState *mon_cpu;
|
||||||
BlockDriverCompletionFunc *password_completion_cb;
|
BlockDriverCompletionFunc *password_completion_cb;
|
||||||
void *password_opaque;
|
void *password_opaque;
|
||||||
#ifdef CONFIG_DEBUG_MONITOR
|
|
||||||
int print_calls_nr;
|
|
||||||
#endif
|
|
||||||
QError *error;
|
QError *error;
|
||||||
QLIST_HEAD(,mon_fd_t) fds;
|
QLIST_HEAD(,mon_fd_t) fds;
|
||||||
QLIST_ENTRY(Monitor) entry;
|
QLIST_ENTRY(Monitor) entry;
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef CONFIG_DEBUG_MONITOR
|
|
||||||
#define MON_DEBUG(fmt, ...) do { \
|
|
||||||
fprintf(stderr, "Monitor: "); \
|
|
||||||
fprintf(stderr, fmt, ## __VA_ARGS__); } while (0)
|
|
||||||
|
|
||||||
static inline void mon_print_count_inc(Monitor *mon)
|
|
||||||
{
|
|
||||||
mon->print_calls_nr++;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void mon_print_count_init(Monitor *mon)
|
|
||||||
{
|
|
||||||
mon->print_calls_nr = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline int mon_print_count_get(const Monitor *mon)
|
|
||||||
{
|
|
||||||
return mon->print_calls_nr;
|
|
||||||
}
|
|
||||||
|
|
||||||
#else /* !CONFIG_DEBUG_MONITOR */
|
|
||||||
#define MON_DEBUG(fmt, ...) do { } while (0)
|
|
||||||
static inline void mon_print_count_inc(Monitor *mon) { }
|
|
||||||
static inline void mon_print_count_init(Monitor *mon) { }
|
|
||||||
static inline int mon_print_count_get(const Monitor *mon) { return 0; }
|
|
||||||
#endif /* CONFIG_DEBUG_MONITOR */
|
|
||||||
|
|
||||||
/* QMP checker flags */
|
/* QMP checker flags */
|
||||||
#define QMP_ACCEPT_UNKNOWNS 1
|
#define QMP_ACCEPT_UNKNOWNS 1
|
||||||
|
|
||||||
|
@ -299,8 +269,6 @@ void monitor_vprintf(Monitor *mon, const char *fmt, va_list ap)
|
||||||
if (!mon)
|
if (!mon)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
mon_print_count_inc(mon);
|
|
||||||
|
|
||||||
if (monitor_ctrl_mode(mon)) {
|
if (monitor_ctrl_mode(mon)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -3860,8 +3828,6 @@ void monitor_set_error(Monitor *mon, QError *qerror)
|
||||||
if (!mon->error) {
|
if (!mon->error) {
|
||||||
mon->error = qerror;
|
mon->error = qerror;
|
||||||
} else {
|
} else {
|
||||||
MON_DEBUG("Additional error report at %s:%d\n",
|
|
||||||
qerror->file, qerror->linenr);
|
|
||||||
QDECREF(qerror);
|
QDECREF(qerror);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3875,36 +3841,7 @@ static void handler_audit(Monitor *mon, const mon_cmd_t *cmd, int ret)
|
||||||
* Action: Report an internal error to the client if in QMP.
|
* Action: Report an internal error to the client if in QMP.
|
||||||
*/
|
*/
|
||||||
qerror_report(QERR_UNDEFINED_ERROR);
|
qerror_report(QERR_UNDEFINED_ERROR);
|
||||||
MON_DEBUG("command '%s' returned failure but did not pass an error\n",
|
|
||||||
cmd->name);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_DEBUG_MONITOR
|
|
||||||
if (!ret && monitor_has_error(mon)) {
|
|
||||||
/*
|
|
||||||
* If it returns success, it must not have passed an error.
|
|
||||||
*
|
|
||||||
* Action: Report the passed error to the client.
|
|
||||||
*/
|
|
||||||
MON_DEBUG("command '%s' returned success but passed an error\n",
|
|
||||||
cmd->name);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mon_print_count_get(mon) > 0 && strcmp(cmd->name, "info") != 0) {
|
|
||||||
/*
|
|
||||||
* Handlers should not call Monitor print functions.
|
|
||||||
*
|
|
||||||
* Action: Ignore them in QMP.
|
|
||||||
*
|
|
||||||
* (XXX: we don't check any 'info' or 'query' command here
|
|
||||||
* because the user print function _is_ called by do_info(), hence
|
|
||||||
* we will trigger this check. This problem will go away when we
|
|
||||||
* make 'query' commands real and kill do_info())
|
|
||||||
*/
|
|
||||||
MON_DEBUG("command '%s' called print functions %d time(s)\n",
|
|
||||||
cmd->name, mon_print_count_get(mon));
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void handle_user_command(Monitor *mon, const char *cmdline)
|
static void handle_user_command(Monitor *mon, const char *cmdline)
|
||||||
|
@ -4433,8 +4370,6 @@ static void qmp_call_cmd(Monitor *mon, const mon_cmd_t *cmd,
|
||||||
int ret;
|
int ret;
|
||||||
QObject *data = NULL;
|
QObject *data = NULL;
|
||||||
|
|
||||||
mon_print_count_init(mon);
|
|
||||||
|
|
||||||
ret = cmd->mhandler.cmd_new(mon, params, &data);
|
ret = cmd->mhandler.cmd_new(mon, params, &data);
|
||||||
handler_audit(mon, cmd, ret);
|
handler_audit(mon, cmd, ret);
|
||||||
monitor_protocol_emitter(mon, data);
|
monitor_protocol_emitter(mon, data);
|
||||||
|
|
Loading…
Reference in a new issue