In unserer Anwendung kommt es zu der seltsamen fatalen System.AccessViolationException. Wir sehen diese, da wir das Ereignis AppDomain.CurrentDomain.UnhandledException zur Protokollierung der Ausnahme konfiguriert haben.
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
Die Ausnahme selbst scheint nicht mehr Informationen zu enthalten als die Meldung "Es wurde versucht, geschützten Speicher zu lesen oder zu schreiben. Dies ist oft ein Hinweis darauf, dass anderer Speicher beschädigt ist."
- Welche Schritte können wir nun unternehmen, um der Ursache des Problems auf den Grund zu gehen?
- Gibt es eine Möglichkeit, die illegale Adresse oder den Zeigerwert zu ermitteln, der den Absturz verursacht hat?
- Können wir herausfinden, welcher native Bibliothekscode das Problem verursacht hat?
- Gibt es mehr Debugging/Verfolgung, die wir aktivieren können?
UPDATE
- Könnte dies durch eine frühere, nicht thread-sichere Verwendung der WinForms-API verursacht werden?