On Wednesday, 14 March 2012 at 07:35:50 UTC, FeepingCreature
wrote:
Sweet. Yeah, I think you need to use naked and reconstruct the
stackframe. Not sure how it'd look; I'm not familiar with the
x86_64 ABI.
I think it might be safe to just reconstruct the stack frame in
the signal handler, and set gregs[REG_EIP] to &_d_throw directly.
It should also use a pre-allocated exception object (like how
it's done with OutofMemoryError and InvalidMemoryOperationError),
in case there's data corruption in the GC.