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