scanLSDA

Read and extract information from the LSDA (aka gcc_except_table section). The dmd Call Site Table is structurally different from other implementations. It is organized as nested ranges, and one ip can map to multiple ranges. The most nested candidate is selected when searched. Other implementations have one candidate per ip.

version(Posix)
LsdaResult
scanLSDA
(
const(ubyte)* lsda
,
_Unwind_Ptr ip
,
_Unwind_Exception_Class exceptionClass
,,,
_Unwind_Exception* exceptionObject
,
out _Unwind_Ptr landingPad
,
out int handler
)

Parameters

lsda
Type: const(ubyte)*

pointer to LSDA table

ip

offset from start of function at which exception happened

exceptionClass

which language threw the exception

cleanupsOnly
Type: bool

only look for cleanups

preferHandler
Type: bool

if a handler encloses a cleanup, prefer the handler

exceptionObject

language specific exception information

landingPad

set to landing pad

handler
Type: int

set to index of which catch clause was matched

Return Value

LsdaResult

See Also

Suggestion Box / Bug Report