Вот такой код печатает мусор при втором вызове vprintf.
va_list ap;
va_start (ap, format);
vfprintf(stderr, format, ap);
vfprintf(stderr, format, ap);
va_end (ap);
Сделан workaround в виде:
va_list ap;
va_list ap_console;
va_start (ap, format);
va_copy(ap_console, ap);
vfprintf(stderr, format, ap);
vfprintf(stderr, format, ap_console);
va_end (ap);
va_end (ap_console);