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 |
---|---|
actionTableLookup(exceptionObject, actionRecordPtr, pActionTable, tt, TType, exceptionClass)
|
Look up classType in Action Table. |
actionTableLookup(exceptionObject, actionRecordPtr, pActionTable, tt, TType, exceptionClass)
|
Look up classType in Action Table. |
getClassInfo(exceptionObject)
|
Look at the chain of inflight exceptions and pick the class type that'll be looked for in catch clauses. |
getClassInfo(exceptionObject)
|
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. |
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. |
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. |
sLEB128(p)
|
Decode Signed LEB128. |
uLEB128(p)
|
Decode Unsigned LEB128. |
uLEB128(p)
|
Decode Unsigned LEB128. |
_d_eh_swapContextDwarf(newContext)
|
Called when fibers switch contexts. |
_d_eh_swapContextDwarf(newContext)
|
Called when fibers switch contexts. |
_d_throwdwarf(o)
|
Called by D code to throw an exception via |
_d_throwdwarf(o)
|
Called by D code to throw an exception via |
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. |
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 |
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. |
ExceptionHeader
|
Wrap the unwinder's data with our own compiler specific struct with our own data. |
Manifest constants
Name | Type | Description |
---|---|---|
cppExceptionClass
|
C++ Support | |
cppExceptionClass
|
C++ Support |
Authors
Walter Bright
License
Distributed under the Boost Software License 1.0. (See accompanying file LICENSE)
Copyright © 1999-2018 by the D Language Foundation | Page generated by ddox.