/** Standard error output. * @copydoc DBGFINFOHLP::pfnPrintf */ static DECLCALLBACK(void) dbgfR3InfoStdErr_Printf(PCDBGFINFOHLP pHlp, const char *pszFormat, ...) { NOREF(pHlp); va_list args; va_start(args, pszFormat); RTStrmPrintfV(g_pStdErr, pszFormat, args); va_end(args); }
/** Prints an error message and returns 1 for quick return from main use. */ static int Error(const char *pszMsgFmt, ...) { RTStrmPrintf(g_pStdErr, "\nerror: "); va_list va; va_start(va, pszMsgFmt); RTStrmPrintfV(g_pStdErr, pszMsgFmt, va); va_end(va); return 1; }
static int Error(const char *pszFormat, ...) { char szName[RTPATH_MAX]; if (!RTProcGetExecutablePath(szName, sizeof(szName))) strcpy(szName, "tstRTDigest"); RTStrmPrintf(g_pStdErr, "%s: error: ", RTPathFilename(szName)); va_list va; va_start(va, pszFormat); RTStrmPrintfV(g_pStdErr, pszFormat, va); va_end(va); return 1; }
static int rtMsgWorker(PRTSTREAM pDst, const char *pszPrefix, const char *pszFormat, va_list va) { if ( !*pszFormat || !strcmp(pszFormat, "\n")) RTStrmPrintf(pDst, "\n"); else { const char *pszProgName = g_pszProgName; if (!pszProgName) g_pszProgName = pszProgName = &g_szrtProcExePath[g_offrtProcName]; char *pszMsg; ssize_t cch = RTStrAPrintfV(&pszMsg, pszFormat, va); if (cch >= 0) { /* print it line by line. */ char *psz = pszMsg; do { char *pszEnd = strchr(psz, '\n'); if (!pszEnd) { RTStrmPrintf(pDst, "%s: %s%s\n", pszProgName, pszPrefix, psz); break; } if (pszEnd == psz) RTStrmPrintf(pDst, "\n"); else { *pszEnd = '\0'; RTStrmPrintf(pDst, "%s: %s%s\n", pszProgName, pszPrefix, psz); } psz = pszEnd + 1; } while (*psz); RTStrFree(pszMsg); } else { /* Simple fallback for handling out-of-memory conditions. */ RTStrmPrintf(pDst, "%s: %s", pszProgName, pszPrefix); RTStrmPrintfV(pDst, pszFormat, va); if (!strchr(pszFormat, '\n')) RTStrmPrintf(pDst, "\n"); } } return VINF_SUCCESS; }
/** * Prints an error message to the screen. * * @param pszFormat The message format string. * @param va Format arguments. */ void supSvcDisplayErrorV(const char *pszFormat, va_list va) { RTStrmPrintf(g_pStdErr, "VBoxSupSvc error: "); RTStrmPrintfV(g_pStdErr, pszFormat, va); Log(("supSvcDisplayErrorV: %s", pszFormat)); /** @todo format it! */ }