5 PFC_NORETURN
void SHARED_EXPORT
uBugCheck();
23 #define TRACK_CALL(X) uCallStackTracker TRACKER__##X(#X) 24 #define TRACK_CALL_TEXT(X) uCallStackTracker TRACKER__BLAH(X) 25 #define TRACK_CODE(description,code) {uCallStackTracker __call_tracker(description); code;} 28 #define TRACK_CALL_TEXT(X) 29 #define TRACK_CODE(description,code) {code;} 34 TerminateProcess(GetCurrentProcess(), 0);
39 #define FB2K_DYNAMIC_ASSERT( X ) { if (!(X)) uBugCheck(); } 41 #define __except_instacrash __except(uExceptFilterProc(GetExceptionInformation())) 42 #define fb2k_instacrash_scope(X) __try { X; } __except_instacrash {} 44 PFC_NORETURN
static void fb2kCriticalError(DWORD code, DWORD argCount = 0,
const ULONG_PTR * args = NULL) {
45 fb2k_instacrash_scope( RaiseException(code,EXCEPTION_NONCONTINUABLE,argCount,args); );
80 const ULONG_PTR args[] = {signal};
81 RaiseException(0x6F8E1DC8 , EXCEPTION_NONCONTINUABLE, _countof(args), args);
85 RaiseException(0xf6538887 , EXCEPTION_NONCONTINUABLE, 0, 0);
89 const wchar_t * expression,
90 const wchar_t *
function,
95 RaiseException(0xd142b808 , EXCEPTION_NONCONTINUABLE, 0, 0);
99 const int signals[] = {SIGINT, SIGTERM, SIGBREAK, SIGABRT};
101 _set_abort_behavior(0, ~0);
LONG SHARED_EXPORT uExceptFilterProc(LPEXCEPTION_POINTERS param)
void SHARED_EXPORT uDumpCrashInfo(LPEXCEPTION_POINTERS param)
SHARED_EXPORT uCallStackTracker(const char *name)
LPCSTR SHARED_EXPORT uGetCallStackPath()
static void __cdecl _OverrideCrtAbort_handler(int signal)
static void fb2kWaitForThreadCompletion2(HANDLE hWaitFor, HANDLE hThread, DWORD threadID)
static void fb2kWaitForCompletion(HANDLE hEvent)
static PFC_NORETURN void fb2kCriticalError(DWORD code, DWORD argCount=0, const ULONG_PTR *args=NULL)
SHARED_EXPORT ~uCallStackTracker()
typedef HANDLE(WINAPI *pPowerCreateRequest_t)(__in void *Context)
static PFC_NORETURN void fb2kDeadlock()
DWORD WaitForSingleObject(HANDLE hHandle, DWORD dwMilliseconds)
static void _InvalidParameter(const wchar_t *expression, const wchar_t *function, const wchar_t *file, unsigned int line, uintptr_t pReserved)
static int uExceptFilterProc_inline(LPEXCEPTION_POINTERS param)
void SHARED_EXPORT fb2kDebugSelfTest()
static void fb2kWaitForThreadCompletion(HANDLE hWaitFor, DWORD threadID)
static void OverrideCrtAbort()
static void __cdecl _PureCallHandler()
PFC_NORETURN void SHARED_EXPORT uBugCheck()