/* * Print an error message to current monitor if we have one, else to stderr. * Prepend the current location and append a newline. * It's wrong to call this in a QMP monitor. Use qerror_report() there. */ void error_report(const char *fmt, ...) { va_list ap; error_print_loc(); va_start(ap, fmt); error_vprintf(fmt, ap); va_end(ap); error_printf("\n"); }
/* * Print an error message to current monitor if we have one, else to stderr. * Format arguments like vsprintf(). The resulting message should be * a single phrase, with no newline or trailing punctuation. * Prepend the current location and append a newline. * It's wrong to call this in a QMP monitor. Use error_setg() there. */ void error_vreport(const char *fmt, va_list ap) { GTimeVal tv; gchar *timestr; if (enable_timestamp_msg && !cur_mon) { g_get_current_time(&tv); timestr = g_time_val_to_iso8601(&tv); error_printf("%s ", timestr); g_free(timestr); } error_print_loc(); error_vprintf(fmt, ap); error_printf("\n"); }
/* * Print an error message to current monitor if we have one, else to stderr. * Format arguments like sprintf(). The result should not contain * newlines. * Prepend the current location and append a newline. * It's wrong to call this in a QMP monitor. Use qerror_report() there. */ void error_report(const char *fmt, ...) { va_list ap; GTimeVal tv; gchar *timestr; if (enable_timestamp_msg) { g_get_current_time(&tv); timestr = g_time_val_to_iso8601(&tv); error_printf("%s ", timestr); g_free(timestr); } error_print_loc(); va_start(ap, fmt); error_vprintf(fmt, ap); va_end(ap); error_printf("\n"); }