1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 04:22:20 +02:00
Beef/BeefySysLib/platform/win/CrashCatcher.h

42 lines
891 B
C
Raw Normal View History

2019-08-23 11:56:54 -07:00
#pragma once
#include "../../BeefySysLib/Common.h"
#include "../util/CritSect.h"
2019-08-23 11:56:54 -07:00
NS_BF_BEGIN
typedef void(*CrashInfoFunc)();
class CrashCatcher
{
public:
Array<CrashInfoFunc> mCrashInfoFuncs;
2020-05-29 16:10:47 -07:00
String mCrashInfo;
bool mCrashed;
bool mInitialized;
CritSect mBfpCritSect;
EXCEPTION_POINTERS* mExceptionPointers;
LPTOP_LEVEL_EXCEPTION_FILTER mPreviousFilter;
bool mDebugError;
2020-09-17 14:15:38 -07:00
bool mCloseRequested;
2020-05-29 16:10:47 -07:00
BfpCrashReportKind mCrashReportKind;
2020-09-17 14:15:38 -07:00
String mRelaunchCmd;
2019-08-23 11:56:54 -07:00
public:
CrashCatcher();
virtual void Init();
virtual void AddCrashInfoFunc(CrashInfoFunc crashInfoFunc);
virtual void AddInfo(const StringImpl& str);
2019-08-23 11:56:54 -07:00
virtual void Test();
virtual void Crash(const StringImpl& str);
virtual void SetCrashReportKind(BfpCrashReportKind crashReportKind);
2020-09-17 14:15:38 -07:00
virtual void SetRelaunchCmd(const StringImpl& relaunchCmd);
static CrashCatcher* Get();
static int Shutdown();
2019-08-23 11:56:54 -07:00
};
NS_BF_END