2016-06-08 7 views
-4

일부 고객에게 델파이 애플리케이션이 있습니다. 액세스 위반이 발생하지만 여러 다른 시스템에서이를 재현 할 수 없습니다. 또한 한 고객에게는 2 대의 동일한 컴퓨터가 있고, 다른 컴퓨터에서는 발생하지 않습니다.Delphi 프로그램의 액세스 위반이 단서를 찾을 수 없습니다.

제 3 자 구성 요소로 양식을 열었을 때 예외가 발생하지만 양식을 다른 구성 요소에서 상속하면 양식이 상속됩니다. MadExcept에서이 로그를 얻었지만 나에게도 도움이되지 않습니다. 누군가에게 내가 다음에 시도 할 수있는 단서가 있습니까? madExcept에서 스택 추적의

exception class : EAccessViolation 
exception message : Zugriffsverletzung bei Adresse 0064E033 in Modul 'MyProgram.exe'. Lesen von Adresse 5AC03580. 

main thread ($42c): 
0064e033 +003 MyProgram.exe Vcl.Controls     TWinControl.HandleNeeded 
0064e059 +005 MyProgram.exe Vcl.Controls     TWinControl.GetHandle 
00757f4d +16d MyProgram.exe Vcl.Forms     TCustomForm.SetFocusedControl 
0064ad51 +1cd MyProgram.exe Vcl.Controls     TWinControl.WndProc 
00f1f1ef +13b MyProgram.exe cxControls     TcxControl.WndProc 
0064a78c +02c MyProgram.exe Vcl.Controls     TWinControl.MainWndProc 
0054dd1c +014 MyProgram.exe System.Classes    StdWndProc 
77c40594 +034 ntdll.dll         KiUserCallbackDispatcher 
00755490 +1a0 MyProgram.exe Vcl.Forms     TCustomForm.WndProc 
00b54029 +03d MyProgram.exe Frm_MDIChildVorlage 1092 +15 TForm_MDIChildVorlage.WndProc 
0064a78c +02c MyProgram.exe Vcl.Controls     TWinControl.MainWndProc 
0054dd1c +014 MyProgram.exe System.Classes    StdWndProc 
77c40594 +034 ntdll.dll         KiUserCallbackDispatcher 
777ad6c0 +090 USER32.dll         CallWindowProcW 
0075596a +03a MyProgram.exe Vcl.Forms     Default 
00755b95 +1d9 MyProgram.exe Vcl.Forms     TCustomForm.ClientWndProc 
0054dd1c +014 MyProgram.exe System.Classes    StdWndProc 
777ad6c0 +090 USER32.dll         CallWindowProcW 
02302e82 +0ea MyProgram.exe Frm_MainVorlage  1251 +22 TForm_MainVorlage.ClientWndProc 
0054dd1c +014 MyProgram.exe System.Classes    StdWndProc 
777ad6c0 +090 USER32.dll         CallWindowProcW 
0084819e +2d6 MyProgram.exe AdvMenus   2933 +63 MDIClientWndProc 
77c40594 +034 ntdll.dll         KiUserCallbackDispatcher 
777c8f63 +013 USER32.dll         DefMDIChildProcW 
777ad6c0 +090 USER32.dll         CallWindowProcW 
0064b27e +0e6 MyProgram.exe Vcl.Controls     TWinControl.DefaultHandler 
00757c46 +05a MyProgram.exe Vcl.Forms     TCustomForm.DefaultHandler 
0064662d +2bd MyProgram.exe Vcl.Controls     TControl.WndProc 
0064b16d +5e9 MyProgram.exe Vcl.Controls     TWinControl.WndProc 
0075591c +62c MyProgram.exe Vcl.Forms     TCustomForm.WndProc 
00b54029 +03d MyProgram.exe Frm_MDIChildVorlage 1092 +15 TForm_MDIChildVorlage.WndProc 
0064a78c +02c MyProgram.exe Vcl.Controls     TWinControl.MainWndProc 
0054dd1c +014 MyProgram.exe System.Classes    StdWndProc 
77c40594 +034 ntdll.dll         KiUserCallbackDispatcher 
777ad6c0 +090 USER32.dll         CallWindowProcW 
0075596a +03a MyProgram.exe Vcl.Forms     Default 
00755b95 +1d9 MyProgram.exe Vcl.Forms     TCustomForm.ClientWndProc 
0054dd1c +014 MyProgram.exe System.Classes    StdWndProc 
777ad6c0 +090 USER32.dll         CallWindowProcW 
02302e82 +0ea MyProgram.exe Frm_MainVorlage  1251 +22 TForm_MainVorlage.ClientWndProc 
0054dd1c +014 MyProgram.exe System.Classes    StdWndProc 
777ad6c0 +090 USER32.dll         CallWindowProcW 
0084819e +2d6 MyProgram.exe AdvMenus   2933 +63 MDIClientWndProc 
77c40594 +034 ntdll.dll         KiUserCallbackDispatcher 
777b2b34 +134 USER32.dll         SendMessageW 
00757bd2 +042 MyProgram.exe Vcl.Forms     TCustomForm.DestroyWindowHandle 
007544d7 +073 MyProgram.exe Vcl.Forms     TCustomForm.Destroy 
00409df0 +008 MyProgram.exe System    173 +0 TObject.Free 
00759c74 +000 MyProgram.exe Vcl.Forms     TCustomForm.CMRelease 
0064662d +2bd MyProgram.exe Vcl.Controls     TControl.WndProc 
0064b16d +5e9 MyProgram.exe Vcl.Controls     TWinControl.WndProc 
0075591c +62c MyProgram.exe Vcl.Forms     TCustomForm.WndProc 
00b54029 +03d MyProgram.exe Frm_MDIChildVorlage 1092 +15 TForm_MDIChildVorlage.WndProc 
0064a78c +02c MyProgram.exe Vcl.Controls     TWinControl.MainWndProc 
0054dd1c +014 MyProgram.exe System.Classes    StdWndProc 
777aa67b +00b USER32.dll         DispatchMessageW 
0075ef77 +0f3 MyProgram.exe Vcl.Forms     TApplication.ProcessMessage 
0075efba +00a MyProgram.exe Vcl.Forms     TApplication.HandleMessage 
0075f2ed +0c9 MyProgram.exe Vcl.Forms     TApplication.Run 
02371231 +241 MyProgram.exe REPDOC_Main   1003 +53 initialization 
754e7c02 +022 KERNEL32.DLL         BaseThreadInitThunk 

thread $89c: 
754e7c02 +22 KERNEL32.DLL BaseThreadInitThunk 

thread $1fc: 
754e7c02 +22 KERNEL32.DLL BaseThreadInitThunk 

thread $3dc: 
75e02d54 +24 KERNELBASE.dll   GetQueuedCompletionStatus 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by main thread ($42c) at: 
623ac11a +00 libcef.dll 

thread $1150: 
754e7c02 +22 KERNEL32.DLL BaseThreadInitThunk 

thread $ca4: 
75e02d54 +24 KERNELBASE.dll   GetQueuedCompletionStatus 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by main thread ($42c) at: 
6137fc3b +00 libcef.dll 

thread $11cc: 
754e7c02 +22 KERNEL32.DLL BaseThreadInitThunk 

thread $bd4: 
75dc2cc1 +b1 KERNELBASE.dll   WaitForSingleObjectEx 
75dc2bfd +0d KERNELBASE.dll   WaitForSingleObject 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by main thread ($42c) at: 
6137fc3b +00 libcef.dll 

thread $9b8: 
75dc2cc1 +b1 KERNELBASE.dll   WaitForSingleObjectEx 
75dc2bfd +0d KERNELBASE.dll   WaitForSingleObject 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by main thread ($42c) at: 
6137fc3b +00 libcef.dll 

thread $ef8: 
75dd28bd +000 KERNELBASE.dll   WaitForMultipleObjectsEx 
777adcbd +15d USER32.dll    MsgWaitForMultipleObjectsEx 
004b42ad +00d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +032 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +022 KERNEL32.DLL    BaseThreadInitThunk 
>> created by main thread ($42c) at: 
6137fc3b +000 libcef.dll 

thread $139c: 
75dc2cc1 +b1 KERNELBASE.dll   WaitForSingleObjectEx 
75dc2bfd +0d KERNELBASE.dll   WaitForSingleObject 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by main thread ($42c) at: 
6137fc3b +00 libcef.dll 

thread $1038: 
75dc2cc1 +b1 KERNELBASE.dll   WaitForSingleObjectEx 
75dc2bfd +0d KERNELBASE.dll   WaitForSingleObject 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by main thread ($42c) at: 
6137fc3b +00 libcef.dll 

thread $ac: 
75e02d54 +24 KERNELBASE.dll   GetQueuedCompletionStatus 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by main thread ($42c) at: 
6137fc3b +00 libcef.dll 

thread $1294: 
75e02d54 +24 KERNELBASE.dll   GetQueuedCompletionStatus 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by main thread ($42c) at: 
6137fc3b +00 libcef.dll 

thread $11fc: 
75dc2cc1 +b1 KERNELBASE.dll   WaitForSingleObjectEx 
75dc2bfd +0d KERNELBASE.dll   WaitForSingleObject 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by thread $1294 at: 
6137fc3b +00 libcef.dll 

thread $1194: 
77cbb56c +ac ntdll.dll     RtlSleepConditionVariableCS 
75e78d2a +1a KERNELBASE.dll   SleepConditionVariableCS 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by main thread ($42c) at: 
6137fc3b +00 libcef.dll 

thread $d54: 
75e02d54 +24 KERNELBASE.dll   GetQueuedCompletionStatus 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by thread $ef8 at: 
6137fc3b +00 libcef.dll 

thread $104c: 
754e7c02 +22 KERNEL32.DLL BaseThreadInitThunk 

thread $bbc: 
75dd28bd +00 KERNELBASE.dll   WaitForMultipleObjectsEx 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by main thread ($42c) at: 
758c9e7e +00 combase.dll 

thread $ee4: <priority:2> 
777bd577 +47 USER32.dll    GetMessageA 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by main thread ($42c) at: 
6ad45607 +00 WINMM.dll 

thread $2f4: 
75dd28bd +00 KERNELBASE.dll   WaitForMultipleObjectsEx 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by main thread ($42c) at: 
7388e7bc +00 clr.dll 

thread $200: <priority:2> 
75dd28bd +00 KERNELBASE.dll   WaitForMultipleObjectsEx 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by main thread ($42c) at: 
7390be93 +00 clr.dll 

thread $ecc: 
75dc2b7d +4d KERNELBASE.dll   SleepEx 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by main thread ($42c) at: 
738bc074 +00 clr.dll 

thread $51c: 
75dc2cc1 +b1 KERNELBASE.dll   WaitForSingleObjectEx 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by thread $ecc at: 
7390be93 +00 clr.dll 

thread $180: 
75dc2cc1 +b1 KERNELBASE.dll   WaitForSingleObjectEx 
75dc2bfd +0d KERNELBASE.dll   WaitForSingleObject 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by thread $ecc at: 
738bc074 +00 clr.dll 

thread $107c: 
75dc2cc1 +b1 KERNELBASE.dll   WaitForSingleObjectEx 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by thread $51c at: 
7390be93 +00 clr.dll 

thread $f68: 
75dc2cc1 +b1 KERNELBASE.dll   WaitForSingleObjectEx 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by thread $51c at: 
7390be93 +00 clr.dll 

thread $e9c: 
75dc2cc1 +b1 KERNELBASE.dll   WaitForSingleObjectEx 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by thread $107c at: 
7390be93 +00 clr.dll 

thread $99c: 
75dd28bd +00 KERNELBASE.dll   WaitForMultipleObjectsEx 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by main thread ($42c) at: 
60ddcb57 +00 comsvcs.dll 

thread $13fc: 
754e7c02 +22 KERNEL32.DLL BaseThreadInitThunk 

thread $948: 
75dc2cc1 +b1 KERNELBASE.dll   WaitForSingleObjectEx 
75dc2bfd +0d KERNELBASE.dll   WaitForSingleObject 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by thread $1294 at: 
6137fc3b +00 libcef.dll 

thread $20: 
75e02d54 +24 KERNELBASE.dll   GetQueuedCompletionStatus 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by main thread ($42c) at: 
67b5280f +00 System.Data.dll 

thread $1018: 
75dc2cc1 +0b1 KERNELBASE.dll   WaitForSingleObjectEx 
004b42ad +00d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +032 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +022 KERNEL32.DLL    BaseThreadInitThunk 
>> created by main thread ($42c) at: 
6b863451 +241 rasman.dll    RasAddNotification 

thread $37c: 
75dd28bd +00 KERNELBASE.dll   WaitForMultipleObjectsEx 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by main thread ($42c) at: 
7390be93 +00 clr.dll 

thread $74c: 
75dc2cc1 +b1 KERNELBASE.dll   WaitForSingleObjectEx 
75dc2bfd +0d KERNELBASE.dll   WaitForSingleObject 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by main thread ($42c) at: 
7562808b +6b msvcrt.dll    _beginthreadex 

thread $129c: 
75dc2cc1 +b1 KERNELBASE.dll   WaitForSingleObjectEx 
75dc2bfd +0d KERNELBASE.dll   WaitForSingleObject 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by main thread ($42c) at: 
7562808b +6b msvcrt.dll    _beginthreadex 

thread $f80: <priority:-1> 
75dd28bd +00 KERNELBASE.dll   WaitForMultipleObjectsEx 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by main thread ($42c) at: 
7562808b +6b msvcrt.dll    _beginthreadex 

thread $1154: 
75dd28bd +000 KERNELBASE.dll   WaitForMultipleObjectsEx 
777adcbd +15d USER32.dll    MsgWaitForMultipleObjectsEx 
004b42ad +00d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +032 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +022 KERNEL32.DLL    BaseThreadInitThunk 
>> created by main thread ($42c) at: 
5dc09787 +000 MSHTML.dll 

thread $127c: <priority:-1> 
75dd28bd +00 KERNELBASE.dll   WaitForMultipleObjectsEx 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by main thread ($42c) at: 
7562808b +6b msvcrt.dll    _beginthreadex 

thread $1298: 
75dd28bd +000 KERNELBASE.dll   WaitForMultipleObjectsEx 
777adcbd +15d USER32.dll    MsgWaitForMultipleObjectsEx 
004b42ad +00d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +032 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +022 KERNEL32.DLL    BaseThreadInitThunk 
>> created by thread $1154 at: 
5dc09787 +000 MSHTML.dll 

thread $1010: 
75dc2cc1 +b1 KERNELBASE.dll   WaitForSingleObjectEx 
75dc2bfd +0d KERNELBASE.dll   WaitForSingleObject 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by main thread ($42c) at: 
7562808b +6b msvcrt.dll    _beginthreadex 

thread $131c: 
75dd28bd +000 KERNELBASE.dll   WaitForMultipleObjectsEx 
777adcbd +15d USER32.dll    MsgWaitForMultipleObjectsEx 
004b42ad +00d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +032 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +022 KERNEL32.DLL    BaseThreadInitThunk 
>> created by thread $1154 at: 
5dc09787 +000 MSHTML.dll 

thread $121c: 
75dc2cc1 +b1 KERNELBASE.dll   WaitForSingleObjectEx 
75dc2bfd +0d KERNELBASE.dll   WaitForSingleObject 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by main thread ($42c) at: 
5dc09787 +00 MSHTML.dll 

thread $ad4: <priority:15> 
75dd28bd +00 KERNELBASE.dll   WaitForMultipleObjectsEx 
754e7b83 +13 KERNEL32.DLL    WaitForMultipleObjects 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by main thread ($42c) at: 
5dc06f90 +00 MSHTML.dll 

thread $1234: 
754e7c02 +22 KERNEL32.DLL BaseThreadInitThunk 

thread $1310: 
75dc2cc1 +b1 KERNELBASE.dll   WaitForSingleObjectEx 
004b42ad +0d MyProgram.exe madExcept CallThreadProcSafe 
004b4312 +32 MyProgram.exe madExcept ThreadExceptFrame 
754e7c02 +22 KERNEL32.DLL    BaseThreadInitThunk 
>> created by thread $e9c at: 
7390be93 +00 clr.dll 

cpu registers: 
eax = 5ac03308 
ebx = 5ac03308 
ecx = 2a59eaa5 
edx = 00000000 
esi = 5ac03308 
edi = 119810fc 
eip = 0064e033 
esp = 0018e3e4 
ebp = 0018e414 

stack dump: 
0018e3e4 08 33 c0 5a 5e e0 64 00 - 44 06 13 00 52 7f 75 00 .3.Z^.d.D...R.u. 
0018e3f4 68 e4 18 00 04 b2 40 00 - 14 e4 18 00 da 00 b7 0f [email protected] 
0018e404 07 00 00 00 fc 10 98 11 - 07 00 00 00 c8 6f 9c 11 .............o.. 
0018e414 60 e4 18 00 57 ad 64 00 - 07 00 00 00 07 00 00 00 `...W.d......... 
0018e424 cc a4 40 00 4c e4 18 00 - db a4 40 00 44 e4 18 00 [email protected]@.D... 
0018e434 c8 6f 9c 11 1c ef c9 04 - c8 6f 9c 11 68 bf a9 16 .o.......o..h... 
0018e444 98 e4 18 00 cd 9d 40 00 - a0 e4 18 00 c8 6f 9c 11 [email protected] 
0018e454 1c ef c9 04 d0 e4 18 00 - c8 6f 9c 11 98 e4 18 00 .........o...... 
0018e464 f4 f1 f1 00 a0 e4 18 00 - 04 b2 40 00 98 e4 18 00 [email protected] 
0018e474 07 00 00 00 c8 6f 9c 11 - 8b 96 7a 77 00 00 00 00 .....o....zw.... 
0018e484 00 00 00 00 29 0e 41 2a - 68 bf a9 16 d0 e4 18 00 ....).A*h....... 
0018e494 c8 6f 9c 11 c8 e4 18 00 - 8f a7 64 00 ac e4 18 00 .o........d..... 
0018e4a4 04 b2 40 00 c8 e4 18 00 - 90 e5 18 00 d4 af 40 00 [email protected]@. 
0018e4b4 c8 e4 18 00 da 00 b7 0f - 07 00 00 00 00 00 00 00 ................ 
0018e4c4 c8 6f 9c 11 e0 e4 18 00 - 1e dd 54 00 07 00 00 00 .o........T..... 
0018e4d4 ae 02 0a 00 00 00 00 00 - 00 00 00 00 0c e5 18 00 ................ 
0018e4e4 71 8e 7a 77 02 06 02 00 - 07 00 00 00 ae 02 0a 00 q.zw............ 
0018e4f4 00 00 00 00 07 00 00 00 - cd ab ba dc 00 00 00 00 ................ 
0018e504 da 00 b7 0f 07 00 00 00 - a0 e5 18 00 d1 90 7a 77 ..............zw 
0018e514 da 00 b7 0f 02 06 02 00 - 07 00 00 00 ae 02 0a 00 ................ 

disassembling: 
[...] 
00b5401a  call -$505fcb ($64e054)  ; Vcl.Controls.TWinControl.GetHandle 
00b5401f  push eax 
00b54020  call -$738f2d ($41b0f8)  ; Winapi.Windows.PostMessage 
00b54025 1092 mov  edx, esi 
00b54027  mov  eax, ebx 
00b54029  > call -$3fed3e ($7552f0)  ; Vcl.Forms.TCustomForm.WndProc 
00b5402e 1093 pop  esi 
00b5402f  pop  ebx 
00b54030  ret 
+0

코드를 볼 수 없습니까? 그럼, 우리는 당신에게 답을 줄 수 없을 것입니다. –

+0

해체를보고 올바르지 않은 주소를 해결하십시오. –

+1

오류를 재생산하는 간단한 코드를 제공하는 것은 불가능할 수 있습니다. 적어도 응용 프로그램의 구조를 설명 할 수 있습니까? 스레드를 사용합니까? 귀하의 양식이 자동 생성되었거나 즉석에서 생성 되었습니까? 그런 것들은 이것을 디버깅하는 방법을 제안하는 약간의 도움을 줄 것입니다. –

답변

13

최고입니다

0064e033 003 myprogram.exe로 Vcl.Controls TWinControl.HandleNeeded

당신은 정말 충분한 정보 프로그램을 구축해야한다

줄 번호 정보를 얻으려면 +003으로 충분합니다. TWinControl.HandleNeeded를 분해하며 다음과 같습니다

Vcl.Controls.pas.12079: begin 
005659FC 56    push esi 
005659FD 8BF0    mov esi,eax 
Vcl.Controls.pas.12080: if WindowHandle = 0 then 
005659FF 83BE7802000000 cmp dword ptr [esi+$00000278],$00 
00565A06 7516    jnz $00565a1e 

주소가 프로그램에서 다를 수 있지만, 요점은 005659FF - 005659FC 오프셋 003 점이다. 그래서 예외는 함수의 첫 번째 줄에 있습니다

if WindowHandle = 0 then 

유일한 메모리 액세스가 인스턴스 필드 WindowHandle을 읽을 수있는 시도가있다.

인스턴스 필드를 읽지 못하면 보통 인스턴스 포인터가 nil이거나 이미 삭제 된 인스턴스를 나타냅니다. 그리고 예외 텍스트는 상태 이후 :

Lesen 폰 ADRESSE 5AC03580

이 프로그램은 주소 5AC03580을 읽는 것을 알 수 있습니다. 0부터 먼 거리이므로 인스턴스 포인터는 nil이 아닙니다. 따라서 모든 표지판은 이미 파괴 된 인스턴스를 가리 킵니다.

파괴 된 인스턴스가있는 이유를 설명 할 방법이 없습니다. 이제 디버깅하는 것이 당신의 임무입니다. 그리고 여기 많은 애호가들처럼되지 말고 우리가 인간적으로 가능한 것 이상의 것을 말하기를 바랍니다. 가끔 질문에 대한 대답은 단순히 다음에 무엇을 해야할지 알려주는 것입니다.

이중 자유 시나리오를 디버깅하는 것은 미끄러 웠기 때문에 약간 까다로울 수 있습니다. 런타임 예외가 항상 발생하는 것은 아닙니다. FastMM과 같은 도구를 사용하여 이중 자유 오류를 감지하기위한 도구가 포함 된 전체 디버그 옵션을 사용하십시오.