You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// If your application runs on a 32-bit version of Windows operating system, uncaught exceptions from the callback
4760
-
// will be passed onto higher-level exception handlers of your application when available.
4761
-
// The system then calls the unhandled exception filter to handle the exception prior to terminating the process.
4762
-
// If the PCA is enabled, it will offer to fix the problem the next time you run the application.
4763
-
// However, if your application runs on a 64-bit version of Windows operating system or WOW64,
4764
-
// you should be aware that a 64-bit operating system handles uncaught exceptions differently based on its 64-bit processor architecture,
4765
-
// exception architecture, and calling convention.
4766
-
// The following table summarizes all possible ways that a 64-bit Windows operating system or WOW64 handles uncaught exceptions.
4767
-
// 1. The system suppresses any uncaught exceptions.
4768
-
// 2. The system first terminates the process, and then the Program Compatibility Assistant (PCA) offers to fix it the next time
4769
-
// you run the application. You can disable the PCA mitigation by adding a Compatibility section to the application manifest.
4770
-
// 3. The system calls the exception filters but suppresses any uncaught exceptions when it leaves the callback scope,
4771
-
// without invoking the associated handlers.
4772
-
// Behavior type 2 only applies to the 64-bit version of the Windows 7 operating system.
4773
-
4774
-
// NOTE: tests on Win8 box showed that 64 bit version of the Windows 8 always apply type 2 behavior
4775
-
4776
-
// Effectively this means that when StopProcessing exception is raised from ThreadException callback - it won't be intercepted in DriveFsiEventLoop.
4777
-
// Instead it will be interpreted as unhandled exception and crash the whole process.
4778
-
4779
-
// FIX: detect if current process in 64 bit running on Windows 7 or Windows 8 and if yes - swallow the StopProcessing and ScheduleRestart instead.
4780
-
// Visible behavior should not be different, previously exception unwinds the stack and aborts currently running Application.
4781
-
// After that it will be intercepted and suppressed in DriveFsiEventLoop.
4782
-
// Now we explicitly shut down Application so after execution of callback will be completed the control flow
4783
-
// will also go out of WinFormsEventLoop.Run and again get to DriveFsiEventLoop => restart the loop. I'd like the fix to be as conservative as possible
4784
-
// so we use special case for problematic case instead of just always scheduling restart.
0 commit comments