最近我的记录窗体开始产生访问冲突,当我在关闭按钮上关闭它时。关闭窗口产生访问冲突00000258
使用madExcept,我找不到任何有用的(对我来说)在调用堆栈,或其他任何东西。
这是我的日志:
date/time : 2011-06-19, 16:26:06, 851ms
computer name : JEFF-PC
user name : Jeff <admin>
registered owner : Microsoft/Microsoft
operating system : Windows 7 x64 Service Pack 1 build 7601
system language : Danish
system up time : 4 hours 27 minutes
program up time : 13 seconds
processors : 8x Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz
physical memory : 2852/6142 MB (free/total)
free disk space : (C:) 321,83 GB
display mode : 1920x1080, 32 bit
process id : $1e70
allocated memory : 77,05 MB
executable : xSky.exe
exec. date/time : 2011-06-19 16:25
version : 1.4.25.1168
compiled with : Delphi 2010
madExcept version : 3.0l
contact name : Jeff Hansen
contact email : [email protected]
callstack crc : $85c8cb0e, $11baad03, $46cd9070
exception number : 1
exception class : EAccessViolation
exception message : Access violation at address 0052A237 in module 'xSky.exe'. Read of address 00000258.
main thread ($7b0):
0052a237 +0003 xSky.exe Controls 11847 +1 TWinControl.HandleNeeded
0052a25d +0005 xSky.exe Controls 11856 +1 TWinControl.GetHandle
006742c5 +6735 xSky.exe sSkinProvider TsSkinProvider.NewWndProc
00526b2c +002c xSky.exe Controls 9540 +3 TWinControl.MainWndProc
004a3b28 +0014 xSky.exe Classes 13014 +8 StdWndProc
770c0117 +002b ntdll.dll KiUserCallbackDispatcher
76950d48 +0016 USER32.dll CallWindowProcW
0052758c +00d8 xSky.exe Controls 9860 +30 TWinControl.DefaultHandler
0054be0a +005a xSky.exe Forms 5223 +11 TCustomForm.DefaultHandler
00529177 +00a3 xSky.exe Controls 11042 +20 TWinControl.WMSysCommand
0054cedd +0055 xSky.exe Forms 5832 +14 TCustomForm.WMSysCommand
00522bc8 +02d4 xSky.exe Controls 7062 +91 TControl.WndProc
0052748c +0568 xSky.exe Controls 9819 +144 TWinControl.WndProc
00549b98 +0594 xSky.exe Forms 3960 +191 TCustomForm.WndProc
00673672 +5ae2 xSky.exe sSkinProvider TsSkinProvider.NewWndProc
00526b2c +002c xSky.exe Controls 9540 +3 TWinControl.MainWndProc
004a3b28 +0014 xSky.exe Classes 13014 +8 StdWndProc
769496c0 +0047 USER32.dll SendMessageW
006712ed +375d xSky.exe sSkinProvider TsSkinProvider.NewWndProc
00526b2c +002c xSky.exe Controls 9540 +3 TWinControl.MainWndProc
004a3b28 +0014 xSky.exe Classes 13014 +8 StdWndProc
769496c0 +0047 USER32.dll SendMessageW
0067f857 +073f xSky.exe sSkinProvider TacBorderForm.BorderProc
00526b2c +002c xSky.exe Controls 9540 +3 TWinControl.MainWndProc
004a3b28 +0014 xSky.exe Classes 13014 +8 StdWndProc
76947885 +000a USER32.dll DispatchMessageW
00552d55 +011d xSky.exe Forms 9784 +30 TApplication.ProcessMessage
00552d9a +000a xSky.exe Forms 9814 +1 TApplication.HandleMessage
005530c5 +00c9 xSky.exe Forms 9951 +26 TApplication.Run
007e493b +008f xSky.exe xSky 54 +10 initialization
750f33c8 +0010 kernel32.dll BaseThreadInitThunk
thread $b8c:
770d1f2f +0b ntdll.dll NtWaitForWorkViaWorkerFactory
750f33c8 +10 kernel32.dll BaseThreadInitThunk
thread $129c:
770d1f2f +0b ntdll.dll NtWaitForWorkViaWorkerFactory
750f33c8 +10 kernel32.dll BaseThreadInitThunk
thread $1748:
770d1f2f +0b ntdll.dll NtWaitForWorkViaWorkerFactory
750f33c8 +10 kernel32.dll BaseThreadInitThunk
thread $1ac8:
770d0146 +0e ntdll.dll NtWaitForMultipleObjects
750f33c8 +10 kernel32.dll BaseThreadInitThunk
thread $a88 (TWorkerThread):
770cf8ba +0e ntdll.dll NtWaitForSingleObject
74f20810 +92 KERNELBASE.dll WaitForSingleObjectEx
750f118f +3e kernel32.dll WaitForSingleObjectEx
750f1143 +0d kernel32.dll WaitForSingleObject
006d0129 +19 xSky.exe VirtualTrees TWorkerThread.Execute
004666af +2b xSky.exe madExcept HookedTThreadExecute
004a1656 +42 xSky.exe Classes 11018 +8 ThreadProc
00406cf0 +28 xSky.exe System 13579 +33 ThreadWrapper
00466591 +0d xSky.exe madExcept CallThreadProcSafe
004665fb +37 xSky.exe madExcept ThreadExceptFrame
750f33c8 +10 kernel32.dll BaseThreadInitThunk
>> created by main thread ($7b0) at:
006d006e +16 xSky.exe VirtualTrees TWorkerThread.Create
thread $1fb0:
76947908 +26 USER32.dll GetMessageW
750f33c8 +10 kernel32.dll BaseThreadInitThunk
thread $1fc8:
770d1f2f +0b ntdll.dll NtWaitForWorkViaWorkerFactory
750f33c8 +10 kernel32.dll BaseThreadInitThunk
thread $15dc (TacTimerThread):
770d0146 +0e ntdll.dll NtWaitForMultipleObjects
74f2095c +fa KERNELBASE.dll WaitForMultipleObjectsEx
750f1a27 +89 kernel32.dll WaitForMultipleObjectsEx
004a4e06 +56 xSky.exe SyncObjs 339 +14 THandleObject.WaitFor
005f54b0 +0c xSky.exe acThdTimer 6852 +0 TacTimerThread.Execute
004a1656 +42 xSky.exe Classes 11018 +8 ThreadProc
00406cf0 +28 xSky.exe System 13579 +33 ThreadWrapper
00466591 +0d xSky.exe madExcept CallThreadProcSafe
004665fb +37 xSky.exe madExcept ThreadExceptFrame
750f33c8 +10 kernel32.dll BaseThreadInitThunk
>> created by main thread ($7b0) at:
005f55a1 +0d xSky.exe acThdTimer 6852 +0 TacThreadedTimer.StartTimer
我做我的项目,在此之前开始发生,是我添加了一个形式到我的项目,后来又删除它唯一的变化。它的所有痕迹已被删除,但我的日志形式仍然呕吐AV。
记录表格是一个自动创建表单。我所做的只是表明它是frmLog.Show;
它可能是一些非常愚蠢的,一如既往,但我只是无法弄清楚。
我没有做任何形式关闭事件。
编辑:当双击在疯狂的顶部调用堆栈的项目,它把我带到单位控件和行,如果WindowHandle = 0,那么在程序TWinControl.HandleNeeded;
你可以在调试器的AV中断开吗?你能否使用你的版本控制系统来隔离导致问题的变化? –
@David - 当双击Mad中顶部的Call Stack项时,它将我带入单元Controls,并在程序TWinControl.HandleNeeded中将'if WindowHandle = 0 then'一行。这有帮助吗?我没有版本控制:( – Jeff
只是为了确保表格被完全删除:(1)从项目中删除它的pascal文件以及可以通过搜索路径找到的任何文件夹(2)清除构建中的所有DCU (3)选择不使用Delphi dcus编译,使用VCL源代码编译(4)Build All和Run,调用堆栈可能更有意义并且更有帮助 –