mirror of
https://github.com/OpenMW/openmw.git
synced 2025-07-26 17:14:09 +00:00
Also possibly fix the errors, as I was getting them when I started testing, and then wasn't by the time I'd got the code how I wanted it. However, nothing in this commit looks like it *should* fix any errors.
58 lines
1.3 KiB
C++
58 lines
1.3 KiB
C++
#ifndef WINDOWS_CRASHSHM_HPP
|
|
#define WINDOWS_CRASHSHM_HPP
|
|
|
|
#include <components/misc/windows.hpp>
|
|
|
|
namespace Crash
|
|
{
|
|
|
|
// Used to communicate between the app and the monitor, fields are is overwritten with each event.
|
|
static constexpr const int MAX_LONG_PATH = 0x7fff;
|
|
static constexpr const int MAX_FILENAME = 0xff;
|
|
|
|
struct CrashSHM
|
|
{
|
|
enum class Event
|
|
{
|
|
None,
|
|
Startup,
|
|
Crashed,
|
|
Shutdown
|
|
};
|
|
|
|
Event mEvent;
|
|
|
|
enum class Status
|
|
{
|
|
Uninitialised,
|
|
Monitoring,
|
|
Dumping,
|
|
DumpedSuccessfully,
|
|
FailedDumping
|
|
};
|
|
|
|
Status mMonitorStatus;
|
|
|
|
struct Startup
|
|
{
|
|
HANDLE mAppProcessHandle;
|
|
DWORD mAppMainThreadId;
|
|
HANDLE mSignalApp;
|
|
HANDLE mSignalMonitor;
|
|
HANDLE mShmMutex;
|
|
char mDumpDirectoryPath[MAX_LONG_PATH];
|
|
char mCrashDumpFileName[MAX_FILENAME];
|
|
char mFreezeDumpFileName[MAX_FILENAME];
|
|
} mStartup;
|
|
|
|
struct Crashed
|
|
{
|
|
DWORD mThreadId;
|
|
CONTEXT mContext;
|
|
EXCEPTION_RECORD mExceptionRecord;
|
|
} mCrashed;
|
|
};
|
|
|
|
} // namespace Crash
|
|
|
|
#endif // WINDOWS_CRASHSHM_HPP
|