W32 exception handling misbehaves when C# exceptions are thrown when running inside the Visual Studio debugger
This is a regression from !582 (merged) (bisected down to it), and only happens when running under Visual Studio with the debugger attached.
If a C++ exception inside a C++ application is thrown, everything works fine. However, if a C# exception is thrown inside a C# application, some sort of infinite loop/recursive call happens causing high CPU usage and the application becomes unresponsive. This happens even if the exception is thrown inside a try .. catch block and discarded:
using GLib;
static void Main()
{
GLib.GType.Init();
try
{
object o = null;
o.ToString();
}
catch (Exception)
{
// Ignore exception
//throw;
}
}
Happens in both managed code debugging mode and native code debugging mode.
CC: @lrn
Edited by Nirbheek Chauhan