Catching C++ std::exception in D

Walter Bright via Digitalmars-d digitalmars-d at puremagic.com
Thu Nov 12 02:13:09 PST 2015


On 11/12/2015 2:08 AM, Iain Buclaw via Digitalmars-d wrote:
>     Writing the druntime end of things, which is really providing just two
>     functions: d_throw (d_dwarf_throw to distinguish it) and the libunwind
>     personality function: __dmd_personality_v0. The tricky part with the
>     personality function will likely be recognizing std::exception* exceptions.
>     I wonder if forwarding the call to __gxx_personality_v0 will work.
>
>
> I'll have to check, but I'm pretty certain that libunwind will call the C++
> personality for you if you return `nothing found` from D personality function.

Why should it? What tells libunwind to call the C++ personality function? The 
generated EH tables only say call the D personality function.


More information about the Digitalmars-d mailing list