本文介绍了有没有办法找出TCustomForm引用引用的是哪种形式?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经为问题。程序挂起时,我从madTraceProcess得到以下报告:

I have added madExcept support to my application referenced in this question. When the program hangs I get the following report from madTraceProcess:

date/time         : 2015-07-28, 09:21:06, 350ms
computer name     : ENG_LAB
user name         : user
registered owner  : Eng_Lab_2
operating system  : Windows 7 x64 Service Pack 1 build 7601
system language   : English
system up time    : 1 hour 3 minutes
program up time   : 54 minutes 6 seconds
processors        : 2x AMD A6-5350M APU with Radeon(tm) HD Graphics
physical memory   : 1938/3225 MB (free/total)
free disk space   : (C:) 240.37 GB
display mode      : 1366x768, 32 bit
process id        : $c88
allocated memory  : 41.85 MB
executable        : MyApp.exe
exec. date/time   : 2015-07-27 15:23
version           : 2.3.1.22
compiled with     : Delphi 2010
madExcept version : 3.0o
callstack crc     : $15a22a67, $cd1beee7, $cd1beee7

main thread ($1204):
0058c051 +031 MyApp.exe Forms     3331  +3 TCustomForm.DoDestroy
0058bec2 +052 MyApp.exe Forms     3296 +23 TCustomForm.Destroy
004b290e +07a MyApp.exe Classes  11827 +10 TComponent.DestroyComponents
00589e3d +035 MyApp.exe Forms     1773  +9 DoneApplication
00476142 +026 MyApp.exe SysUtils  3991  +6 DoExitProc
00407141 +065 MyApp.exe System   13380 +41 @Halt0
00de2936 +13a MyApp.exe MyApp    139 +17 initialization
75563378 +010 kernel32.dll                             BaseThreadInitThunk

thread $6e0: <priority:2>
75727c18 +45 USER32.dll                      GetMessageA
0046a945 +0d MyApp.exe madExcept CallThreadProcSafe
0046a9af +37 MyApp.exe madExcept ThreadExceptFrame
75563378 +10 kernel32.dll                    BaseThreadInitThunk
>> created by main thread ($1204) at:
755634a0 +1b kernel32.dll                    CreateThread

thread $34c:
77440152 +0e ntdll.dll     NtWaitForMultipleObjects
75563378 +10 kernel32.dll  BaseThreadInitThunk

thread $1a28:
77441f3b +0b ntdll.dll     NtWaitForWorkViaWorkerFactory
75563378 +10 kernel32.dll  BaseThreadInitThunk

modules:
00400000 MyApp.exe 2.3.1.22           C:\Program Files (x86)\MyAppFolder\MyApp
60c10000 gdiplus.dll           6.1.7601.18852     C:\Windows\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.18852_none_72d5ba7586659cb4
61bf0000 msxml6.dll            6.30.7601.17988    C:\Windows\System32
61d50000 olepro32.dll          6.1.7601.17514     C:\Windows\system32
69020000 WindowsCodecs.dll     6.2.9200.17251     C:\Windows\system32
6a4c0000 hhctrl.ocx            6.1.7600.16385     C:\Windows\system32
6f1f0000 SXS.DLL               6.1.7601.17514     C:\Windows\system32
71160000 comctl32.dll          5.82.7601.18837    C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.18837_none_ec86b8d6858ec0bc
718a0000 comctl32.dll          6.10.7601.18837    C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.18837_none_41e855142bd5705d
71b60000 uxtheme.dll           6.1.7600.16385     C:\Windows\system32
71df0000 dwmapi.dll            6.1.7600.16385     C:\Windows\system32
71e70000 oleacc.dll            7.0.0.0            C:\Windows\system32
73260000 SHFolder.dll          6.1.7600.16385     C:\Windows\system32
73410000 wsock32.dll           6.1.7600.16385     C:\Windows\system32
736f0000 msimg32.dll           6.1.7600.16385     C:\Windows\system32
73700000 propsys.dll           7.0.7601.17514     C:\Windows\system32
73840000 winmm.dll             6.1.7601.17514     C:\Windows\system32
74340000 ntmarta.dll           6.1.7600.16385     C:\Windows\system32
74460000 winspool.drv          6.1.7601.17514     C:\Windows\system32
744c0000 version.dll           6.1.7600.16385     C:\Windows\system32
747e0000 RpcRtRemote.dll       6.1.7601.17514     C:\Windows\system32
747f0000 rsaenh.dll            6.1.7600.16385     C:\Windows\system32
74830000 CRYPTSP.dll           6.1.7600.16385     C:\Windows\system32
74a30000 RICHED20.DLL          5.31.23.1230       C:\Windows\system32
74e20000 CRYPTBASE.dll         6.1.7600.16385     C:\Windows\syswow64
74e30000 SspiCli.dll           6.1.7601.18798     C:\Windows\syswow64
74e90000 WS2_32.dll            6.1.7601.17514     C:\Windows\syswow64
74f60000 WLDAP32.dll           6.1.7601.17514     C:\Windows\syswow64
75010000 ole32.dll             6.1.7601.17514     C:\Windows\syswow64
75180000 SHLWAPI.dll           6.1.7601.17514     C:\Windows\syswow64
751f0000 CFGMGR32.dll          6.1.7601.17621     C:\Windows\syswow64
75220000 GDI32.dll             6.1.7601.18778     C:\Windows\syswow64
752c0000 ADVAPI32.dll          6.1.7601.18247     C:\Windows\syswow64
75360000 KERNELBASE.dll        6.1.7601.18847     C:\Windows\syswow64
753b0000 IMM32.DLL             6.1.7601.17514     C:\Windows\system32
75550000 kernel32.dll          6.1.7601.18847     C:\Windows\syswow64
75660000 CLBCatQ.DLL           2001.12.8530.16385 C:\Windows\syswow64
756f0000 profapi.dll           6.1.7600.16385     C:\Windows\syswow64
75710000 USER32.dll            6.1.7601.17514     C:\Windows\syswow64
75850000 shell32.dll           6.1.7601.18762     C:\Windows\syswow64
764a0000 comdlg32.dll          6.1.7601.17514     C:\Windows\syswow64
76530000 USP10.dll             1.626.7601.18009   C:\Windows\syswow64
767c0000 SETUPAPI.dll          6.1.7601.17514     C:\Windows\syswow64
76960000 oleaut32.dll          6.1.7601.18679     C:\Windows\syswow64
76a00000 msvcrt.dll            7.0.7601.17744     C:\Windows\syswow64
76ab0000 MSCTF.dll             6.1.7601.18731     C:\Windows\syswow64
76b80000 NSI.dll               6.1.7600.16385     C:\Windows\syswow64
76bc0000 RPCRT4.dll            6.1.7601.18532     C:\Windows\syswow64
76cb0000 sechost.dll           6.1.7600.16385     C:\Windows\SysWOW64
76ed0000 DEVOBJ.dll            6.1.7601.17621     C:\Windows\syswow64
773f0000 LPK.dll               6.1.7600.16385     C:\Windows\syswow64
77420000 ntdll.dll             6.1.7601.18798     C:\Windows\SysWOW64

processes:
0000 Idle                                  0 0   0
0004 System                                0 0   0
0128 smss.exe                              0 0   0
021c csrss.exe                             0 0   0
0288 wininit.exe                           0 0   0
0290 csrss.exe                             1 0   0
02b8 services.exe                          0 0   0
02d0 lsass.exe                             0 0   0
02d8 lsm.exe                               0 0   0
0310 winlogon.exe                          1 0   0
0370 svchost.exe                           0 0   0
03b0 TrueSuiteService.exe                  0 0   0
03e0 ibmpmsvc.exe                          0 0   0
0144 svchost.exe                           0 0   0
0284 atiesrxx.exe                          0 0   0
040c svchost.exe                           0 0   0
0430 svchost.exe                           0 0   0
0448 svchost.exe                           0 0   0
0460 svchost.exe                           0 0   0
04dc svchost.exe                           0 0   0
058c svchost.exe                           0 0   0
065c atieclxx.exe                          1 0   0
0670 wlanext.exe                           0 0   0
069c conhost.exe                           0 0   0
071c spoolsv.exe                           0 0   0
0738 svchost.exe                           0 0   0
0794 armsvc.exe                            0 0   0
07c4 CxAudMsg64.exe                        0 0   0
07f4 FBService.exe                         0 0   0
04f0 svchost.exe                           0 0   0
0264 PresentationFontCache.exe             0 0   0
0810 AgentMon.exe                          0 0   0
0828 AdAwareService.exe                    0 0   0
0870 LavasoftTcpService.exe                0 0   0
0890 CamMute.exe                           0 0   0
08ac TPKNRSVC.exe                          0 0   0
08c4 vcamsvc.exe                           0 0   0
0af4 lvvsst.exe                            0 0   0
0b0c NitroPDFDriverService8x64.exe         0 0   0
0b58 NLSSRV32.EXE                          0 0   0
0bd4 SASrv.exe                             0 0   0
0cb8 svchost.exe                           0 0   0
0cd0 TPHKSVC.exe                           0 0   0
0cf4 ULCDRSvr.exe                          0 0   0
0d50 tphkload.exe                          0 0   0
0d68 micmute.exe                           0 0   0
0e0c tpnumlk.exe                           1 0   0
0e5c WmiPrvSE.exe                          0 0   0
0e58 WmiPrvSE.exe                          0 0   0
0ea8 unsecapp.exe                          0 0   0
0fd8 taskhost.exe                          1 26  20  normal
0a88 virtscrl.exe                          1 0   0
0dac rundll32.exe                          1 0   0
0f54 TouchControl.exe                      1 251 99  normal
0f84 mkrmsg.exe                            1 9   3   normal
0f8c dwm.exe                               1 17  2   high
1020 explorer.exe                          1 613 376 normal
110c TPONSCR.EXE                           1 49  4   normal       C:\PROGRA~1\Lenovo\HOTKEY
1118 tpnumlkd.exe                          1 0   0
11fc CAudioFilterAgent64.exe               1 14  7   normal
1208 fmapp.exe                             1 9   4   normal
1210 TpShocks.exe                          1 22  11  normal
1218 TpKnrres.exe                          1 12  10  normal       C:\Program Files\Lenovo\Communications Utility
1278 SynTPEnh.exe                          1 100 58  above normal
12c8 AdAwareTray.exe                       1 74  16  normal
12d0 WebCompanion.exe                      1 33  31  normal       C:\Program Files (x86)\Lavasoft\Web Companion\Application
13c4 rundll32.exe                          1 4   1   normal       C:\Windows\SysWOW64
13f4 rundll32.exe                          1 62  12  normal
1184 SynTPLpr.exe                          1 9   4   normal
11b4 KaUsrTsk.exe                          1 9   9   normal       C:\Program Files (x86)\SpireTech\SPRTCH24362552940339
11c8 BrStMonW.exe                          1 62  63  normal       C:\Program Files (x86)\Browny02\Brother
1268 SCHTASK.exe                           1 10  5   normal       C:\PROGRA~2\ThinkPad\UTILIT~1
133c BrCtrlCntr.exe                        1 9   1   normal       C:\Program Files (x86)\ControlCenter4
064c BrCcUxSys.exe                         1 19  10  normal       C:\Program Files (x86)\ControlCenter4
0fa0 taskeng.exe                           1 9   3   normal
13cc ismagent.exe                          1 12  14  below normal C:\Program Files (x86)\Intel\IntelAppStore\bin
1414 pcee4.exe                             1 14  10  below normal
1778 SearchIndexer.exe                     0 0   0
17f8 BrYNSvc.exe                           0 0   0
0094 Lua.exe                               0 0   0
10fc Lua.exe                               0 0   0
16d8 conhost.exe                           0 0   0
01c8 Kaseya.AgentEndpoint.exe              0 0   0
081c conhost.exe                           0 0   0
0dd4 conhost.exe                           0 0   0
16dc SynTPHelper.exe                       1 0   0
1804 svchost.exe                           0 0   0
1844 unsecapp.exe                          1 9   3   normal
19d4 BioMonitor.exe                        1 9   4   normal       C:\Program Files\Lenovo Fingerprint Reader\x86
10a4 mcplaunch.exe                         1 4   1   idle         C:\Program Files (x86)\Lenovo\message center plus
16c8 Lavasoft.SearchProtect.WinService.exe 0 0   0
142c wuauclt.exe                           1 12  7   normal
1bbc PsiService_2.exe                      0 0   0
0d14 chrome.exe                            1 40  46  normal       C:\Program Files (x86)\Google\Chrome\Application
1708 chrome.exe                            1 10  7   normal       C:\Program Files (x86)\Google\Chrome\Application
1dc0 chrome.exe                            1 4   1   normal       C:\Program Files (x86)\Google\Chrome\Application
0c88 MyApp.exe                 1 375 186 normal       C:\Program Files (x86)\MyAppFolder\MyApp
11f4 FP23DB~2.EXE                          1 229 105 normal       C:\PROGRA~2\MyAppF~1
1e34 splwow64.exe                          1 9   2   normal
1bcc WINWORD.EXE                           1 253 88  normal       C:\Program Files (x86)\Microsoft Office\Office12
1984 taskmgr.exe                           1 129 112 high
1efc audiodg.exe                           0 0   0
0b50 madTraceProcess.exe                   1 36  23  normal       C:\Users

hardware:
+ Batteries
  - Microsoft AC Adapter
  - Microsoft ACPI-Compliant Control Method Battery
  - Microsoft Composite Battery
+ Computer
  - ACPI x64-based PC
+ Disk drives
  - WDC WD32 00LPVX-08V0TT5 SATA Disk Device
+ Display adapters
  - AMD Radeon HD 8450G (driver 12.102.1.8000)
+ DVD/CD-ROM drives
  - PLDS DVD-RW DS8A9SH SATA CdRom Device
+ Human Interface Devices
  - USB Input Device
+ IDE ATA/ATAPI controllers
  - AMD SATA Controller (driver 1.2.1.331)
+ Imaging devices
  - Brother MFC-J6710DW LAN (driver 1.1.24.21)
  - Camera Plus (VGA Resolution Maximum) (driver 1.0.1.1)
  - Integrated Camera
+ Jungo Connectivity
  - WinDriver (driver 11.5.0.0)
+ Keyboards
  - Standard PS/2 Keyboard
+ Memory technology driver
  - Realtek PCIE CardReader (driver 6.1.7601.29005)
+ Mice and other pointing devices
  - HID-compliant mouse
  - ThinkPad UltraNav Pointing Device (driver 16.4.0.3)
+ Monitors
  - LCD 1366x768 (driver 5.7.0.0)
+ Network adapters
  - Microsoft Virtual WiFi Miniport Adapter
  - Realtek PCIe GBE Family Controller (driver 7.48.823.2011)
  - Realtek RTL8188E Wireless LAN 802.11n PCI-E NIC (driver 2007.8.201.2013)
+ Ports (COM & LPT)
  - USB Serial Port (COM3) (driver 2.12.0.0)
  - USB Serial Port (COM5) (driver 2.12.0.0)
+ Processors
  - AMD A6-5350M APU with Radeon(tm) HD Graphics
  - AMD A6-5350M APU with Radeon(tm) HD Graphics
+ SM Driver
  - SM bios service (driver 6.1.1020.0)
  - SM bus service (driver 6.5.1018.0)
+ Sound, video and game controllers
  - AMD High Definition Audio Device (driver 7.12.0.7714)
  - Conexant 20671 SmartAudio HD (driver 8.54.48.0)
+ Storage volume shadow copies
  - Generic volume shadow copy
+ System devices
  - ACPI Fixed Feature Button
  - ACPI Lid
  - ACPI Power Button
  - AMD SMBus (driver 5.12.0.15)
  - BitDefender AVC HV (driver 3.10.7096.4224)
  - Composite Bus Enumerator
  - Direct memory access controller
  - File as Volume Driver
  - High Definition Audio Controller
  - High Definition Audio Controller
  - Lenovo PM Device (driver 1.67.10.15)
  - Microsoft ACPI-Compliant Embedded Controller
  - Microsoft ACPI-Compliant System
  - Microsoft System Management BIOS Driver
  - Microsoft Virtual Drive Enumerator Driver
  - Microsoft Windows Management Interface for ACPI
  - Motherboard resources
  - Motherboard resources
  - Numeric data processor
  - PCI bus
  - PCI standard host CPU bridge
  - PCI standard host CPU bridge
  - PCI standard host CPU bridge
  - PCI standard host CPU bridge
  - PCI standard host CPU bridge
  - PCI standard host CPU bridge
  - PCI standard host CPU bridge
  - PCI standard ISA bridge
  - PCI standard PCI-to-PCI bridge
  - PCI standard PCI-to-PCI bridge
  - PCI standard PCI-to-PCI bridge
  - PCI standard PCI-to-PCI bridge
  - Plug and Play Software Device Enumerator
  - Programmable interrupt controller
  - Remote Desktop Device Redirector Bus
  - Synaptics SMBus Driver (driver 16.4.0.3)
  - System board
  - System CMOS/real time clock
  - System speaker
  - System timer
  - Terminal Server Keyboard Driver
  - Terminal Server Mouse Driver
  - UMBus Enumerator
  - UMBus Root Bus Enumerator
  - Volume Manager
+ Universal Serial Bus controllers
  - AMD USB 3.0 Host Controller (driver 1.1.0.128)
  - AMD USB 3.0 Host Controller (driver 1.1.0.128)
  - AMD USB 3.0 Root Hub (driver 1.1.0.128)
  - AMD USB 3.0 Root Hub (driver 1.1.0.128)
  - Standard Enhanced PCI to USB Host Controller
  - Standard Enhanced PCI to USB Host Controller
  - Standard OpenHCD USB Host Controller
  - Standard OpenHCD USB Host Controller
  - USB Composite Device
  - USB Root Hub
  - USB Root Hub
  - USB Root Hub
  - USB Root Hub
  - USB Serial Converter (driver 2.12.0.0)
  - USB Serial Converter (driver 2.12.0.0)

disassembling:
[...]
0058c03f        push    dword ptr fs:[eax]
0058c042        mov     fs:[eax], esp
0058c045 3331   mov     ebx, [ebp-4]
0058c048        mov     edx, [ebp-4]
0058c04b        mov     eax, [ebx+$33c]
0058c051      > call    dword ptr [ebx+$338]
0058c057        xor     eax, eax
0058c059        pop     edx
0058c05a        pop     ecx
0058c05b        pop     ecx
0058c05c        mov     fs:[eax], edx
[...

(根据我的经验不足)看起来程序正在挂起在OnDestroy事件处理程序中,但是导致问题的原因并不明显。

It looks (to my inexperienced eye) like the program is hanging in an OnDestroy event handler but it isn't obvious which form is causing the trouble. Is there a way to determine which form is stalled?

推荐答案

编写输出到日志文件的应用程序的调试版本-对于代码中的所有 onDestroy事件,请为OnDestroy Start TMyForm1和OnDestroy End TMyForm2添加一条日志消息。或者,您需要将OnDestroy例程重命名为唯一的名称。

Write a debug version of the app that outputs to a log file - For all 'onDestroy' events in code add a log message for OnDestroy Start TMyForm1 and OnDestroy End TMyForm2. Alternatively you'll need to rename your OnDestroy routines to something unique.

话虽如此,OnDestroy不会出现在调用堆栈中(OnDestroy<> DoDestroy)。好像您可能遇到了@David Schwartz建议的双重免税问题。同样,在远程计算机上处​​理此问题的最简单方法是将创建并销毁的每个表单记录到文件中,并将它们配对。

That being said, OnDestroy doesn't appear in your call stack (OnDestroy<>DoDestroy). It does look as though you may have a double-free problem as @David Schwartz suggests. Again, easiest way to deal with this on a remote machine is to log each form create and destroy to a file and pair them up.

这篇关于有没有办法找出TCustomForm引用引用的是哪种形式?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-17 01:22