http://d.puremagic.com/issues/show_bug.cgi?id=7938
Summary: Stack overflow/access violation when throwing exceptions from fibers Product: D Version: D2 Platform: All OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: Phobos AssignedTo: nob...@puremagic.com ReportedBy: andrew.laurit...@gmail.com --- Comment #0 from Andrew Lauritzen <andrew.laurit...@gmail.com> 2012-04-18 16:04:59 PDT --- Throwing exceptions from fibers seems buggy on Windows in both 2.058 and 2.059 (and perhaps earlier). The following modification to the example given in the unit test (adding unrelated exception handling to the same scope) fails with a "Stack Overflow" exception, followed by tons of access violations: enum MSG = "Test message."; string caughtMsg; (new Fiber({ try { throw new Exception(MSG); } catch (Exception e) { caughtMsg = e.msg; } })).call(); assert(caughtMsg == MSG); // Add these two lines try { caughtMsg = "Hello"; } catch (Exception e) { caughtMsg = "World"; } It seems brittle as well. Adding a "assert(caughtMsg == "Hello");" to the end of the above program for instance avoids the access violations (but still shows the stack overflow in the debugger). Similarly playing with the caughtMsg assignments (omitting one) or adding another assert at the end of the program will sometimes cause the program to run without error. This is in debug mode with optimizations off to theoretically avoid dead code elimination, but clearly something is easily thrown off. Tested on several machines in Windows 7 x64 (but with a 32-bit D2 application of course). -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------