Initial commit

This commit is contained in:
nmzik
2026-07-16 10:21:41 +02:00
commit 147188b143
427 changed files with 205923 additions and 0 deletions
+44
View File
@@ -0,0 +1,44 @@
#ifndef KYTY_COMMON_HOST_EXCEPTION_H_
#define KYTY_COMMON_HOST_EXCEPTION_H_
#include "common/common.h"
namespace Common::HostException {
enum class ExceptionType { Unknown, AccessViolation, IllegalInstruction };
enum class AccessViolationType { Unknown, Read, Write, Execute };
struct ExceptionInfo {
ExceptionType type = ExceptionType::Unknown;
AccessViolationType access_violation_type = AccessViolationType::Unknown;
uint64_t access_violation_vaddr = 0;
uint64_t exception_address = 0;
uint64_t rax = 0;
uint64_t rbx = 0;
uint64_t rcx = 0;
uint64_t rdx = 0;
uint64_t rsi = 0;
uint64_t rdi = 0;
uint64_t rbp = 0;
uint64_t rsp = 0;
uint64_t r8 = 0;
uint64_t r9 = 0;
uint64_t r10 = 0;
uint64_t r11 = 0;
uint64_t r12 = 0;
uint64_t r13 = 0;
uint64_t r14 = 0;
uint64_t r15 = 0;
uint32_t native_code = 0;
// Platform-specific mutable context, valid only for the duration of the handler call.
void* native_context = nullptr;
};
using Handler = bool (*)(const ExceptionInfo&);
bool InstallHandler(Handler handler);
} // namespace Common::HostException
#endif /* KYTY_COMMON_HOST_EXCEPTION_H_ */