1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
#include "pilercr.h"
#include <signal.h>
#ifdef WIN32
#define _WIN32_WINNT 0x0400
#include <windows.h>
void Break()
{
DebugBreak();
}
#endif
// Exit immediately with error message, printf-style.
void Quit(const char szFormat[], ...)
{
va_list ArgList;
char szStr[4096];
va_start(ArgList, szFormat);
vsprintf(szStr, szFormat, ArgList);
fprintf(stderr, "\n*** FATAL ERROR *** %s\n", szStr);
Log("\n*** FATAL ERROR *** ");
Log("%s\n", szStr);
#if DEBUG
#ifdef WIN32
if (IsDebuggerPresent())
{
int iBtn = MessageBox(NULL, szStr, "piler", MB_ICONERROR | MB_OKCANCEL);
if (IDCANCEL == iBtn)
Break();
}
#endif
#endif
if (FlagOpt("segv"))
raise(SIGSEGV);
else
abort();
}
void Warning(const char szFormat[], ...)
{
va_list ArgList;
char szStr[4096];
va_start(ArgList, szFormat);
vsprintf(szStr, szFormat, ArgList);
fprintf(stderr, "\n*** Warning *** %s\n", szStr);
Log("\n*** Warning *** ");
Log("%s\n", szStr);
}
|