[Issue 1001] print stack trace (in debug mode) when program die

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sat Jan 11 04:06:42 PST 2014


https://d.puremagic.com/issues/show_bug.cgi?id=1001



--- Comment #72 from Vladimir Panteleev <thecybershadow at gmail.com> 2014-01-11 14:06:23 EET ---
(In reply to comment #71)
> It's simply that the compiler cannot handle cleanup when every instruction
> could throw. In case an asynchronous exception happens in the middle of some
> statement your program is immediately in an invalid state. Continuing could
> deadlock or corrupt data, much worse than a crash.

OK... so the problem is basically that we call destructors / finally blocks /
scope(exit) blocks when Errors are thrown, and those may behave in a bad way
since the program was in an indeterminate state? I imagine that it's the same
for signals on POSIX? In that case, I suppose we could handle both in the same
way: immediately print a stack trace and exit, but still provide a mechanism
for the user to customize handling of such conditions.

I recall a discussion regarding whether thrown Errors should call finalizers on
the stack, but I suppose it's not really clear-cut.

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list