Delphi 程序中的访问冲突找不到任何线索

Access Violation in Delphi Program can't find any clue

我在一些客户那里有一个 Delphi 应用程序我遇到了访问冲突,但我无法在几个不同的系统上重现它。还有一个客户有 2 台相同的计算机,在一台上发生在另一台上。

当使用一些第 3 方组件(但我也尝试更新它们)打开表单时会发生异常,该表单是从另一个表单继承的。 使用 MadExcept 我得到了这个日志,但它似乎也没有帮助我。有人知道我接下来可以尝试什么吗?

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

main thread (c):
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 c:
754e7c02 +22 KERNEL32.DLL  BaseThreadInitThunk

thread fc:
754e7c02 +22 KERNEL32.DLL  BaseThreadInitThunk

thread dc:
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 (c) at:
623ac11a +00 libcef.dll

thread 50:
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 (c) at:
6137fc3b +00 libcef.dll

thread cc:
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 (c) at:
6137fc3b +00 libcef.dll

thread b8:
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 (c) 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 (c) at:
6137fc3b +000 libcef.dll

thread 9c:
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 (c) at:
6137fc3b +00 libcef.dll

thread 38:
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 (c) 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 (c) at:
6137fc3b +00 libcef.dll

thread 94:
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 (c) at:
6137fc3b +00 libcef.dll

thread fc:
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 94 at:
6137fc3b +00 libcef.dll

thread 94:
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 (c) 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 4c:
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 (c) 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 (c) at:
6ad45607 +00 WINMM.dll

thread f4:
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 (c) at:
7388e7bc +00 clr.dll

thread 0: <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 (c) 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 (c) at:
738bc074 +00 clr.dll

thread c:
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 0:
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 7c:
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 c 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 c 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 7c at:
7390be93 +00 clr.dll

thread c:
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 (c) at:
60ddcb57 +00 comsvcs.dll

thread fc:
754e7c02 +22 KERNEL32.DLL  BaseThreadInitThunk

thread 8:
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 94 at:
6137fc3b +00 libcef.dll

thread :
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 (c) at:
67b5280f +00 System.Data.dll

thread 18:
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 (c) at:
6b863451 +241 rasman.dll                RasAddNotification

thread c:
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 (c) at:
7390be93 +00 clr.dll

thread c:
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 (c) at:
7562808b +6b msvcrt.dll                _beginthreadex

thread 9c:
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 (c) 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 (c) at:
7562808b +6b msvcrt.dll                _beginthreadex

thread 54:
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 (c) at:
5dc09787 +000 MSHTML.dll

thread 7c: <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 (c) at:
7562808b +6b msvcrt.dll                _beginthreadex

thread 98:
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 54 at:
5dc09787 +000 MSHTML.dll

thread 10:
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 (c) at:
7562808b +6b msvcrt.dll                _beginthreadex

thread 1c:
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 54 at:
5dc09787 +000 MSHTML.dll

thread 1c:
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 (c) 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 (c) at:
5dc06f90 +00 MSHTML.dll

thread 34:
754e7c02 +22 KERNEL32.DLL  BaseThreadInitThunk

thread 10:
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  h.....@.........
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  ..@.L.....@.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  ......@......o..
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  ..........@.....
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  ..@...........@.
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    -5fcb (e054)     ; Vcl.Controls.TWinControl.GetHandle
00b5401f        push    eax
00b54020        call    -8f2d (b0f8)     ; Winapi.Windows.PostMessage
00b54025 1092   mov     edx, esi
00b54027        mov     eax, ebx
00b54029      > call    -fed3e (52f0)     ; Vcl.Forms.TCustomForm.WndProc
00b5402e 1093   pop     esi
00b5402f        pop     ebx
00b54030        ret

来自 madExcept 的堆栈跟踪顶部是:

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+[=10=]000278],[=10=]
00565A06 7516             jnz [=10=]565a1e

地址在您的程序中会有所不同,但要点是 005659FF - 005659FC 是偏移量 +003。所以异常在函数的第一行:

if WindowHandle = 0 then

唯一的内存访问是尝试读取实例字段 WindowHandle

并且当读取实例字段失败时,通常意味着实例指针要么是nil,要么指向一个已经被销毁的实例。由于异常文本指出:

Lesen von Adresse 5AC03580

您知道该程序正在尝试读取地址 5AC03580。由于距离零很远,您知道实例指针不是 nil。所以,所有的迹象都指向一个已经被销毁的实例。

我们无法告诉您为什么您的实例已被销毁。现在调试它是你的工作。并且请不要像这里的许多提问者一样,期望我们说的比人类所能说的更多。有时问题的答案只是告诉你下一步该怎么做。

调试双重免费方案可能有点棘手,因为它们往往很滑。您不会总是遇到运行时异常。尝试使用启用了完整调试选项的 FastMM 之类的工具,其中包括尝试检测双重释放错误的工具。