View source code
Display the source code in rt/dwarfeh.d from which this
page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a
Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
local clone.
Module rt.dwarfeh
Exception handling support for Dwarf-style portable exceptions.
Functions
Name | Description |
---|---|
_d_eh_swapContextDwarf(newContext)
|
Called when fibers switch contexts. |
_d_throwdwarf(o)
|
Called by D code to throw an exception via |
actionTableLookup(exceptionObject, actionRecordPtr, pActionTable, tt, TType, exceptionClass, lsda)
|
Look up classType in Action Table. |
getClassInfo(exceptionObject, currentLsd)
|
Look at the chain of inflight exceptions and pick the class type that'll be looked for in catch clauses. |
getCppPtrToThrownObject(exceptionObject, sti)
|
Get Pointer to Thrown Object if type of thrown object is implicitly convertible to the catch type. |
scanLSDA(lsda, ip, exceptionClass, cleanupsOnly, preferHandler, exceptionObject, landingPad, handler)
|
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. |
sLEB128(p)
|
Decode Signed LEB128. |
uLEB128(p)
|
Decode Unsigned LEB128. |
Interfaces
Name | Description |
---|---|
CppTypeInfo
|
Access C++ std::type_info's virtual functions from D, being careful to not require linking with libstd++ or interfere with core.stdcpp.typeinfo. So, give it a different name. |
Structs
Name | Description |
---|---|
CppExceptionHeader
|
The C++ version of D's ExceptionHeader wrapper |
ExceptionHeader
|
Wrap the unwinder's data with our own compiler specific struct with our own data. |
Manifest constants
Name | Type | Description |
---|---|---|
cppExceptionClass
|
C++ Support |
Authors
Walter Bright
License
Distributed under the Boost Software License 1.0. (See accompanying file LICENSE)
Copyright © 1999-2022 by the D Language Foundation | Page generated by ddox.