On Tuesday, 7 January 2014 at 11:36:50 UTC, Ola Fosheim Grøstad wrote:
On Tuesday, 7 January 2014 at 11:29:18 UTC, alex burton wrote:

Hardware exceptions allow for the same thing.

I am not sure what you mean by the above.

You can trap the segfault and access a OS-specific data structure which tells you where it happened, then recover if the runtime supports it.

Thanks for this.

I tested the same code on Windows and it appears that you can catch exceptions of unknown type using catch with no exception variable. The stack is unwound properly and scope(exit) calls work as expected etc.

After reading about signal handling in unix and structured exception handling on Windows, it sounds possible though difficult to implement a similar system on unix to introduce an exception by trapping the seg fault signal, reading the data structure you mention and then using assembler jump instructions to jump into the exception mechanism.

So I take Walters statement to mean that :
hardware exceptions (AKA non software exceptions / SEH on windows) fix the problem - where programmers have put catch unknown exception statements after their normal catch statements in the appropriate places. And that a seg fault exception should result on linux it just happens that it is not yet implmented, which is why we just get the signal and crash.

Reply via email to