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
protectedRangeAddressRangeThe range indicating the code that is protected by the handler.
handlerRangeAddressRangeThe 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
protectedRangeAddressRangeThe range indicating the code that is protected by the handler.
prologueRangeAddressRangeThe range indicating the prologue range that precedes the handler.
handlerRangeAddressRangeThe 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
protectedRangeAddressRangeThe range indicating the code that is protected by the handler.
prologueRangeAddressRangeThe range indicating the prologue range that precedes the handler.
handlerRangeAddressRangeThe range indicating the handler code.
epilogueRangeAddressRangeThe 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
protectedRangeAddressRangeThe range indicating the code that is protected by the handler.
prologueRangeAddressRangeThe range indicating the prologue range that precedes the handler.
handlerRangeAddressRangeThe range indicating the handler code.
epilogueRangeAddressRangeThe range indicating the epilogue range that proceeds the handler.
userDataobjectA 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
protectedRangeAddressRangeThe range indicating the code that is protected by the handler.
prologueRangeAddressRangeThe range indicating the prologue range that precedes the handler.
handlerRangeAddressRangeThe range indicating the handler code.
userDataobjectA 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
protectedRangeAddressRangeThe range indicating the code that is protected by the handler.
handlerRangeAddressRangeThe range indicating the handler code.
userDataobjectA 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
HandlerRange
Gets the address range indicating the start and end of the handler code.
public AddressRange HandlerRange { get; }
Property Value
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
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
UserData
Gets a user defined tag that is added to the exception handler.
public object? UserData { get; }
Property Value
Methods
CompareTo(ExceptionHandlerRange)
public int CompareTo(ExceptionHandlerRange other)
Parameters
otherExceptionHandlerRange
Returns
Equals(in ExceptionHandlerRange)
Determines whether two exception handlers are considered equal.
public bool Equals(in ExceptionHandlerRange other)
Parameters
otherExceptionHandlerRangeThe other exception handler.
Returns
- bool
trueif the handler is equal,falseotherwise.
Equals(object?)
public override bool Equals(object? obj)
Parameters
objobject
Returns
GetHashCode()
public override int GetHashCode()
Returns
ToString()
public override string ToString()