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 a local clone.


Implementation of exception handling support routines for Win64.
Note that this code also support POSIX, however since v2.070.0, DWARF exception handling is used instead when possible, as it provides better compatibility with C++.
Distributed under the Boost Software License 1.0. (See accompanying file LICENSE)
Walter Bright, Sean Kelly
immutable(FuncTable)* __eh_finddata(void* address);
Given address that is inside a function, figure out which function it is in. Return DHandlerTable if there is one, NULL if not.
size_t __eh_find_caller(size_t regbp, size_t* pretaddr);
Given EBP, find return address to caller, and caller's EBP.

Input regbp Value of EBP for current function *pretaddr Return address

Output *pretaddr return address to caller

caller's EBP
void _d_throwc(Throwable h);
Throw a D object.