Во время стресс-тестирования нашего приложения мы, похоже, всегда испытываем катастрофическое исключение AccessViolationException примерно через 10-12 часов использования.
Используя WinDbg для поиска источника, я вижу, что он, кажется, происходит из цикла сообщений нативной формы.Было бы здорово, если бы кто-то подтвердил мое подозрение, поэтому я включил полную трассировку стека с параметрами.Я также провел полную трассировку стека, если кому-то нужна дополнительная информация.
0: 000>! CLRStack -p Идентификатор потока ОС: 0x748 (0) ESPEIP
0012d44c 7c90e514 [InlinedCallFrame: 0012d44c] System.Windows.Forms.UnsafeNativeMethods.WaitMessage () 0012d448 7b1d8ed8 System.Windows.Forms.Application + Component ComponentManager.Int32) ПАРАМЕТРЫ: this = 0x015fe94c dwComponentID = причина = 0x00000004 pvLoopData = 0x00000000
0012d4e4 7b1d89c7 System.Windows.Forms.Application + ThreadContext.reason = 0x00000004 context = 0x0226ec58
0012d538 7b1d8811 System.Windows.Forms.Application + ThreadContext.RunMessageLoop (Int32, System.Windows.Forms.ApplicationContext) PARAMETERS: this = reason = context =
* 10140012d568 7b6ede47 System.Windows.Forms.Application.RunДиалог (System.Windows.Forms.Form) ПАРАМЕТРЫ: форма =
0012d57c 7b7225cb System.Windows.Forms.Form.ShowDialog (System.Windows.Forms.IWin32Window) ПАРАМЕТРЫ: это = 0x02265860 владелец =
0012d608 7b7227e3 System.Windows.Forms.Form.ShowDialog () ПАРАМЕТРЫ: this =
0012d60c 7b6eefa2 System.Windows.Forms.Application + ThreadContext.OnThreadException (System.Exception) PARXETERS 0: 0 = 0 = 0= 0x02265600
0012d648 7b6f7936 System.Windows.Forms.Control.WndProcException (System.Exception).System.Exception) ПАРАМЕТРЫ: this = e =
0012d658 7b1c8502 System.Windows.Forms.NativeWindow.Callback (IntPtr, Int32, IntPtr, IntPtr) ПАРАМЕТРЫ: this = 0x01a9c930 hWnd = msg = 0m0000
0012e880 003c25e4 [NDirectMethodFrameStandalone: 0012e880] System.Windows.Forms.UnsafeNativeMethods.IntDestroyWindow (System.Runtime.InteropServices.HandleRef) 0012e898 7b19ec50 System.Windows.Forms.UnsafeNativeMethods.DestroyWindow (System.Runtime.InteropServices.HandleRef) ПАРАМЕТРЫ: hWnd =
* 1030.ПАРАМЕТРЫ DestroyHandle (): это = 0x01a96d08
0012e8ec 7b1b9050 System.Windows.Forms.Control.DestroyHandle ().Forms.Form.ShowDialog () ПАРАМЕТРЫ: this =
0012ea08 04bf3a7b Workstation.FrontScreenForm.HandleNewEvent (GroupsRow, Int16, Int64) PARAMETERS: this = 0x0153b26c Group = 0x01a8de341038 * 0012ec50 04bf344f Workstation.FrontScreenForm.HandleNewEvent (GroupsRow, Int16) ПАРАМЕТРЫ: this = 0x0153b26c Group = 0x01a8de34 EventTypeID = 0x00000003
0012ec64 04b21ac4.Site.Beck.Fext.b.F.FFentArgs)ПАРАМЕТРЫ:
это = 0x0153b26c
отправитель = 0x01546a44
e = 0x0153e990
0012ecd4 7b194180
System.Windows.Forms.Control.OnClick (System.EventArgs)
ПАРАМЕТРЫ:
это =
е =
0012ecec 7b18f56a
System.Windows.Forms.Button.OnClick (System.EventArgs)
ПАРАМЕТРЫ:
это =
е =
0012ecfc 7b734429
System.Windows.Forms.ButtonBase.OnKeyUp (System.Windows.Forms.KeyEventArgs)
ПАРАМЕТРЫ:
это = 0x01546a44
kevent = 0x01a914c0
0012ed0c 7b6f5bf1
System.Windows.Forms.Control.ProcessKeyEventArgs (System.Windows.Forms.Message
ByRef)
ПАРАМЕТРЫ:
это = 0x01546a44
m = 0x0012ee44
0012ed5c 7b6f5c95
System.Windows.Forms.Control.ProcessKeyMessage (System.Windows.Forms.Message
ByRef)
ПАРАМЕТРЫ:
это =
м =
0012ed6c 7b6f7381
System.Windows.Forms.Control.WmKeyChar (System.Windows.Forms.Message
ByRef)
ПАРАМЕТРЫ:
это = 0x01546a44
m = 0x0012ee44
0012ed7c 7ba2a0ee
System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message
ByRef)
ПАРАМЕТРЫ:
это =
м =
0012ed80 7b1c2626 [InlinedCallFrame: 0012ed80] 0012ee18 7b1c25a0
System.Windows.Forms.Button.WndProc (System.Windows.Forms.Message
ByRef)
ПАРАМЕТРЫ:
это =
м =
0012ee24 7b1c8690
System.Windows.Forms.Control + ControlNativeWindow.OnMessage (System.Windows.Forms.Message
ByRef)
ПАРАМЕТРЫ:
это =
м =
0012ee2c 7b1c8611
System.Windows.Forms.Control + ControlNativeWindow.WndProc (System.Windows.Forms.Message
ByRef)
ПАРАМЕТРЫ:
это =
м =
0012ee40 7b1c84ea System.Windows.Forms.NativeWindow.Callback (IntPtr,
Int32, IntPtr, IntPtr)
ПАРАМЕТРЫ:
это = 0x01546b14
hWnd =
сообщение = 0x00000101
wparam =
lparam =
0012f220 003c25e4 [NDirectMethodFrameStandalone: 0012f220]
System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW (MSG ByRef)
0012f230 7b1d8d5e
System.Windows.Forms.Application + ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop (Int32,
Int32, Int32)
ПАРАМЕТРЫ:
это = 0x015fe94c
dwComponentID =
причина = 0xffffffff
pvLoopData = 0x00000000
0012f2cc 7b1d89c7
System.Windows.Forms.Application + ThreadContext.RunMessageLoopInner (Int32,
System.Windows.Forms.ApplicationContext)
ПАРАМЕТРЫ:
this = 0x0153d9ec
причина = 0xffffffff
context = 0x015fdcd4
0012f320 7b1d8811
System.Windows.Forms.Application + ThreadContext.RunMessageLoop (Int32,
System.Windows.Forms.ApplicationContext)
ПАРАМЕТРЫ:
это =
причина =
контекст =
0012f350 7b195921
System.Windows.Forms.Application.Run (System.Windows.Forms.Form)
ПАРАМЕТРЫ:
mainForm =
0012f364 00f809df Workstation.Program.Main () 0012f688 79e71b4c
[GCFrame: 0012f688]