On Saturday, 22 September 2018 at 05:43:53 UTC, Vladimir
Panteleev wrote:
The only way to do that would be using a debugger.
The specifics of the solution would thus depend on the
platform. On POSIX, it would probably mean getting gdb to print
a detailed backtrace for your project. On Windows, you might be
able to achieve this by spawning a thread which then uses
dbgeng.dll to get a detailed stack trace.
One thing to note: only variables in stack frames since the most
top-level exception block will be visible (so, you'll also need
to disable D runtime's standard exception handler). The reason
for this is that exceptions do not capture the entire stack, but
extract only a stack trace during instantiation, so to get the
entire stack, you'd need to breakpoint _d_throw or such, but at
that point you don't know if you're within an exception frame
ready to catch the thrown exception.
In short: there is no easy way, in the general sense.