ReXGlue SDK
Loading...
Searching...
No Matches
rex::platform::Exception Class Reference

#include <rex/platform/exception_handler.h>

Public Types

enum class  Code : u8 { kInvalidException = 0 , kAccessViolation , kIllegalInstruction }
enum class  AccessViolationOperation : u8 { kUnknown , kRead , kWrite }

Public Member Functions

void InitializeAccessViolation (HostThreadContext *thread_context, u64 fault_address, AccessViolationOperation operation)
void InitializeIllegalInstruction (HostThreadContext *thread_context)
Code GetCode () const
HostThreadContext * GetThreadContext () const
u64 GetPC () const
void SetResumePC (u64 pc)
u64 GetFaultAddress () const
AccessViolationOperation GetAccessViolationOperation () const

Detailed Description

Host exception passed to each ExceptionHandler::Handler.

Member Enumeration Documentation

◆ Code

enum class rex::platform::Exception::Code : u8
strong
Enumerator
kInvalidException 

Not initialized.

Member Function Documentation

◆ GetFaultAddress()

u64 rex::platform::Exception::GetFaultAddress ( ) const
inline

Returns the fault address of an access violation. It is the address read or written.

◆ GetThreadContext()

HostThreadContext * rex::platform::Exception::GetThreadContext ( ) const
inline

Returns the captured thread context. Write registers through the Modify functions so the change reaches the thread when it resumes.

◆ InitializeAccessViolation()

void rex::platform::Exception::InitializeAccessViolation ( HostThreadContext * thread_context,
u64 fault_address,
AccessViolationOperation operation )
inline

Initializes this exception as an access violation.

Parameters
fault_addressThe address read or written.

The documentation for this class was generated from the following file: