runtime hook for Crash on Error

Steven Schveighoffer schveiguy at yahoo.com
Mon Jun 4 12:29:32 PDT 2012


On Mon, 04 Jun 2012 06:20:56 -0400, Don Clugston <dac at nospam.com> wrote:

> 1. There exist cases where you cannot know why the assert failed.
> 2. Therefore you never know why an assert failed.
> 3. Therefore it is not safe to unwind the stack from a nothrow function.
>
> Spot the fallacies.
>
> The fallacy in moving from 2 to 3 is more serious than the one from 1 to  
> 2: this argument is not in any way dependent on the assert occuring in a  
> nothrow function. Rather, it's an argument for not having AssertError at  
> all.

I'm not sure that is the issue here at all.  What I see is that the  
unwinding of the stack is optional, based on the assumption that there's  
no "right" answer.

However, there is an underlying driver for not unwinding the stack --  
nothrow.  If nothrow results in the compiler optimizing out whatever hooks  
a function needs to properly unwind itself (my limited understanding is  
that this helps performance), then there *is no choice*, you can't  
properly unwind the stack.

-Steve


More information about the Digitalmars-d mailing list