Наше приложение испытывает нечетное фатальное исключение System.AccessViolationException. Мы видим это, поскольку мы создали событие AppDomain.CurrentDomain.UnhandledException для регистрации исключения.
Exception: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at Bootstrap.Run() in e:\build-dir\src\Bootstrap.cs:line 25
Само исключение, похоже, не содержит больше информации, чем сообщение "Попытка читать или записывать защищенную память. Это часто свидетельствует о том, что другая память повреждена".
- Какие шаги мы можем предпринять, чтобы понять причину проблемы?
- Есть ли способ определить незаконный адрес или значение указателя, вызвавшее сбой?
- Можем ли мы выяснить, какой код библиотеки был причиной проблемы?
- Можно ли включить дополнительную отладку/трассировку?
UPDATE
- Может ли это быть вызвано более ранним нетепловым использованием WinForms API?