Table of Contents

Struct ExceptionHandlerRange

Namespace
Echo.ControlFlow.Regions.Detection
Assembly
Echo.ControlFlow.dll

Represents an address range of code that is protected from exceptions by a handler block.

public readonly struct ExceptionHandlerRange : IComparable<ExceptionHandlerRange>
Implements
Inherited Members

Constructors

ExceptionHandlerRange(AddressRange, AddressRange)

Creates a new instance of the ExceptionHandlerRange structure.

public ExceptionHandlerRange(AddressRange protectedRange, AddressRange handlerRange)

Parameters

protectedRange AddressRange

The range indicating the code that is protected by the handler.

handlerRange AddressRange

The range indicating the handler code.

ExceptionHandlerRange(AddressRange, AddressRange, AddressRange)

Creates a new instance of the ExceptionHandlerRange structure.

public ExceptionHandlerRange(AddressRange protectedRange, AddressRange prologueRange, AddressRange handlerRange)

Parameters

protectedRange AddressRange

The range indicating the code that is protected by the handler.

prologueRange AddressRange

The range indicating the prologue range that precedes the handler.

handlerRange AddressRange

The range indicating the handler code.

ExceptionHandlerRange(AddressRange, AddressRange, AddressRange, AddressRange)

Creates a new instance of the ExceptionHandlerRange structure.

public ExceptionHandlerRange(AddressRange protectedRange, AddressRange prologueRange, AddressRange handlerRange, AddressRange epilogueRange)

Parameters

protectedRange AddressRange

The range indicating the code that is protected by the handler.

prologueRange AddressRange

The range indicating the prologue range that precedes the handler.

handlerRange AddressRange

The range indicating the handler code.

epilogueRange AddressRange

The range indicating the epilogue range that proceeds the handler.

ExceptionHandlerRange(AddressRange, AddressRange, AddressRange, AddressRange, object?)

Creates a new instance of the ExceptionHandlerRange structure.

public ExceptionHandlerRange(AddressRange protectedRange, AddressRange prologueRange, AddressRange handlerRange, AddressRange epilogueRange, object? userData)

Parameters

protectedRange AddressRange

The range indicating the code that is protected by the handler.

prologueRange AddressRange

The range indicating the prologue range that precedes the handler.

handlerRange AddressRange

The range indicating the handler code.

epilogueRange AddressRange

The range indicating the epilogue range that proceeds the handler.

userData object

A user defined tag that is added to the exception handler.

ExceptionHandlerRange(AddressRange, AddressRange, AddressRange, object?)

Creates a new instance of the ExceptionHandlerRange structure.

public ExceptionHandlerRange(AddressRange protectedRange, AddressRange prologueRange, AddressRange handlerRange, object? userData)

Parameters

protectedRange AddressRange

The range indicating the code that is protected by the handler.

prologueRange AddressRange

The range indicating the prologue range that precedes the handler.

handlerRange AddressRange

The range indicating the handler code.

userData object

A user defined tag that is added to the exception handler.

ExceptionHandlerRange(AddressRange, AddressRange, object?)

Creates a new instance of the ExceptionHandlerRange structure.

public ExceptionHandlerRange(AddressRange protectedRange, AddressRange handlerRange, object? userData)

Parameters

protectedRange AddressRange

The range indicating the code that is protected by the handler.

handlerRange AddressRange

The range indicating the handler code.

userData object

A user defined tag that is added to the exception handler.

Properties

EpilogueRange

Gets the address range indicating the start and end of the code that is executed after the HandlerRange.

public AddressRange EpilogueRange { get; }

Property Value

AddressRange

HandlerRange

Gets the address range indicating the start and end of the handler code.

public AddressRange HandlerRange { get; }

Property Value

AddressRange

PrologueRange

Gets the address range indicating the start and end of the code that is executed before transferring control to the HandlerRange.

public AddressRange PrologueRange { get; }

Property Value

AddressRange

Remarks

A good example would be exception filters in CIL.

ProtectedRange

Gets the address range indicating the start and end of the code that is protected by a handler.

public AddressRange ProtectedRange { get; }

Property Value

AddressRange

UserData

Gets a user defined tag that is added to the exception handler.

public object? UserData { get; }

Property Value

object

Methods

CompareTo(ExceptionHandlerRange)

public int CompareTo(ExceptionHandlerRange other)

Parameters

other ExceptionHandlerRange

Returns

int

Equals(in ExceptionHandlerRange)

Determines whether two exception handlers are considered equal.

public bool Equals(in ExceptionHandlerRange other)

Parameters

other ExceptionHandlerRange

The other exception handler.

Returns

bool

true if the handler is equal, false otherwise.

Equals(object?)

public override bool Equals(object? obj)

Parameters

obj object

Returns

bool

GetHashCode()

public override int GetHashCode()

Returns

int

ToString()

public override string ToString()

Returns

string