AV on Delphi (XE) Close
TestInsight (1.1.2.0) causes AV in RTL150.BPL (Delphi XE Update 1, DDevExtensions 2.83) on close. Uninstalling TestInsight (or DDevExtensions) solves the issue.
Comments (7)
-
repo owner -
repo owner - changed component to IDE Integration
-
OK. I made a small research and I found out that the problem occurs after installing three IDE Wizards: TestInsight (1.1.2.0), Parnassus Bookmarks (1.4.1.0) and DDevExtensions (2.83). Any two of them work fine but when the third is installed AV occurs. Instalation order does not matter (I checked all permutations of the three).
Also I attached debugger to the second IDE and here is the event log:
Thread Exit: Thread ID: 3332. Process bds.exe (544) Thread Exit: Thread ID: 3908. Process bds.exe (544) Module Unload: CodeSiteExpressVcl_Design150.bpl. Process bds.exe (544) Module Unload: CodeSiteExpressVcl150.bpl. Process bds.exe (544) Module Unload: dclDBXDrivers150.bpl. Process bds.exe (544) Module Unload: DBXInterBaseDriver150.bpl. Process bds.exe (544) Module Unload: DBXMySQLDriver150.bpl. Process bds.exe (544) Module Unload: dclwebsnap150.bpl. Process bds.exe (544) Module Unload: websnap150.bpl. Process bds.exe (544) Module Unload: dclmcn150.bpl. Process bds.exe (544) Module Unload: SampleVisualizers150.bpl. Process bds.exe (544) Module Unload: dcltouch150.bpl. Process bds.exe (544) Module Unload: vcltouch150.bpl. Process bds.exe (544) Module Unload: dclsmpedit150.bpl. Process bds.exe (544) Module Unload: dclmlwiz150.bpl. Process bds.exe (544) Module Unload: dclemacsedit150.bpl. Process bds.exe (544) Module Unload: dclact150.bpl. Process bds.exe (544) Module Unload: applet150.bpl. Process bds.exe (544) Module Unload: svnide150.bpl. Process bds.exe (544) Module Unload: svnui150.bpl. Process bds.exe (544) Module Unload: svn150.bpl. Process bds.exe (544) Module Unload: dclsmp150.bpl. Process bds.exe (544) Module Unload: vclsmp150.bpl. Process bds.exe (544) Module Unload: unittestide150.bpl. Process bds.exe (544) Module Unload: tgide150.bpl. Process bds.exe (544) Module Unload: delphierrorinsite150.bpl. Process bds.exe (544) Module Unload: delphicoreproide150.bpl. Process bds.exe (544) Module Unload: win32debugproide150.bpl. Process bds.exe (544) Module Unload: vclmenudesigner150.bpl. Process bds.exe (544) Module Unload: delphipro150.bpl. Process bds.exe (544) Module Unload: htmide150.bpl. Process bds.exe (544) Module Unload: DataExplorer150.bpl. Process bds.exe (544) Module Unload: delphidotnetcore150.bpl. Process bds.exe (544) Module Unload: todoide150.bpl. Process bds.exe (544) Module Unload: refactoride150.bpl. Process bds.exe (544) Module Unload: dbkdebugproide150.bpl. Process bds.exe (544) Module Unload: codetemplates150.bpl. Process bds.exe (544) Module Unload: startpageide150.bpl. Process bds.exe (544) Module Unload: projecttargets150.bpl. Process bds.exe (544) Module Unload: idefilefilters150.bpl. Process bds.exe (544) Module Unload: HtmlHelp2150.bpl. Process bds.exe (544) Module Unload: historyide150.bpl. Process bds.exe (544) Module Unload: fileexplorer150.bpl. Process bds.exe (544) Module Unload: comptoolbar150.bpl. Process bds.exe (544) Module Unload: CSDelphiMethodTracer.dll. Process bds.exe (544) Module Unload: BcDelphiEx.dll. Process bds.exe (544) Module Unload: DDevExtensionsXE.dll. Process bds.exe (544) <---- Module Unload: ParnassusBookmarks.dll. Process bds.exe (544) <---- Thread Exit: Thread ID: 1568. Process bds.exe (544) Module Unload: ParnassusAllPlugins.dll. Process bds.exe (544) <---- Module Unload: Security.dll. Process bds.exe (544) Thread Exit: Thread ID: 1896. Process bds.exe (544) Thread Exit: Thread ID: 3308. Process bds.exe (544) Thread Exit: Thread ID: 3300. Process bds.exe (544) Module Unload: TestInsight.dll. Process bds.exe (544) <==== Module Unload: boreditu.dll. Process bds.exe (544) Module Unload: SHGINA.dll. Process bds.exe (544) Module Unload: BROWSEUI.dll. Process bds.exe (544) Module Unload: CSCUI.dll. Process bds.exe (544) Module Unload: CSCDLL.dll. Process bds.exe (544) Thread Exit: Thread ID: 1784. Process bds.exe (544) Thread Exit: Thread ID: 2996. Process bds.exe (544) Thread Exit: Thread ID: 3056. Process bds.exe (544) Thread Exit: Thread ID: 1188. Process bds.exe (544) Thread Exit: Thread ID: 2348. Process bds.exe (544) Thread Exit: Thread ID: 2512. Process bds.exe (544) Thread Exit: Thread ID: 1968. Process bds.exe (544) Thread Exit: Thread ID: 2132. Process bds.exe (544) Thread Exit: Thread ID: 564. Process bds.exe (544) Thread Exit: Thread ID: 1284. Process bds.exe (544) Thread Exit: Thread ID: 2468. Process bds.exe (544) Thread Exit: Thread ID: 3468. Process bds.exe (544) Thread Exit: Thread ID: 1676. Process bds.exe (544) Thread Exit: Thread ID: 1796. Process bds.exe (544) Thread Exit: Thread ID: 2500. Process bds.exe (544) Thread Exit: Thread ID: 1632. Process bds.exe (544) Thread Exit: Thread ID: 196. Process bds.exe (544)
-
repo owner Can you please verify that it does not happen with only DDevExtensions and Bookmarks installed. On my side the AV that occurs when closing the IDE also appears when TI is not installed.
This is the exception and its call stack I get when I have madExcept installed (otherwise I just get a "has stopped working" dialog):
#! exception class : EAccessViolation exception message : Access violation at address 5003A118 in module 'rtl150.bpl'. Read of address 5393024C. main thread ($6150): 5003a118 +08 rtl150.bpl System 11069 +1 System.TObject.Free 50127c2a +1e rtl150.bpl Rtti 1055 +2 Rtti.TFinalizer.Destroy 50040a44 +1c rtl150.bpl System 28245 +3 System.TInterfacedObject._Release 50040950 +10 rtl150.bpl System 28061 +10 System.@IntfClear 5003e374 +e4 rtl150.bpl System 24190 +129 System.@FinalizeArray 5003e264 +24 rtl150.bpl System 23963 +21 System.@FinalizeRecord 5003a186 +12 rtl150.bpl System 11182 +13 System.TObject.CleanupInstance 5003a0c9 +05 rtl150.bpl System 11049 +1 System.TObject.FreeInstance 5003a79e +02 rtl150.bpl System 12163 +0 System.@ClassDestroy 5003a109 +09 rtl150.bpl System 11064 +1 System.TObject.Destroy 50040a44 +1c rtl150.bpl System 28245 +3 System.TInterfacedObject._Release 50040950 +10 rtl150.bpl System 28061 +10 System.@IntfClear 5003e374 +e4 rtl150.bpl System 24190 +129 System.@FinalizeArray 5003e264 +24 rtl150.bpl System 23963 +21 System.@FinalizeRecord 5003a186 +12 rtl150.bpl System 11182 +13 System.TObject.CleanupInstance 5003a0c9 +05 rtl150.bpl System 11049 +1 System.TObject.FreeInstance 5003a79e +02 rtl150.bpl System 12163 +0 System.@ClassDestroy 501322e0 +88 rtl150.bpl Rtti 3619 +11 Rtti.TRttiObject.Destroy 5003a118 +08 rtl150.bpl System 11069 +1 System.TObject.Free 501478a5 +25 rtl150.bpl Generics.Collections 1946 +3 Rtti.{Generics.Collections}TObjectDictionary<System.Pointer,Rtti.TRttiObject>.ValueNotify 5013f890 +9c rtl150.bpl Generics.Collections 1642 +12 Rtti.{Generics.Collections}TDictionary<System.Pointer,Rtti.TRttiObject>.Clear 5013f6fd +0d rtl150.bpl Generics.Collections 1522 +1 Rtti.{Generics.Collections}TDictionary<System.Pointer,Rtti.TRttiObject>.Destroy 5003a118 +08 rtl150.bpl System 11069 +1 System.TObject.Free 50132116 +1e rtl150.bpl Rtti 3562 +2 Rtti.TRttiPackage.Destroy 5013c302 +22 rtl150.bpl Rtti 6413 +3 Rtti.TRealPackage.Destroy 5003a118 +08 rtl150.bpl System 11069 +1 System.TObject.Free 5012f711 +25 rtl150.bpl Rtti 3011 +2 Rtti.TRttiPool.Destroy 5003a118 +08 rtl150.bpl System 11069 +1 System.TObject.Free 50130474 +3c rtl150.bpl Rtti 3256 +6 Rtti.TPoolToken.Destroy 50040a44 +1c rtl150.bpl System 28245 +3 System.TInterfacedObject._Release 50040950 +10 rtl150.bpl System 28061 +10 System.@IntfClear 5003e374 +e4 rtl150.bpl System 24190 +129 System.@FinalizeArray 5003e264 +24 rtl150.bpl System 23963 +21 System.@FinalizeRecord 5003b84e +3e rtl150.bpl System 15309 +20 System.FinalizeUnits 14408c88 +54 madExcept_.bpl madExcept InterceptFinalizeUnits 5003be1d +9d rtl150.bpl System 16304 +75 System.@Halt0 7750cd63 +00 ntdll.dll LdrShutdownProcess 7750ce0c +7c ntdll.dll RtlExitUserProcess 5009b366 +aa rtl150.bpl Classes 2538 +36 Classes.TRegGroup.UnregisterModuleClasses 5009b874 +24 rtl150.bpl Classes 2765 +4 Classes.TRegGroups.UnregisterModuleClasses 50040892 +2e rtl150.bpl System 27991 +5 System.NotifyModuleUnload 77127c02 +22 KERNEL32.DLL BaseThreadInitThunk
-
Yes, I confirm. There is no AV when I have installed DDevExtensions and Bookmarks together. But installing TI gives AV on IDE closing. Here is the exception and its call stack from madExcept:
exception class : EAccessViolation exception message : Access violation at address 5003A118 in module 'rtl150.bpl'. Read of address 539302F4. main thread ($5f8): 5003a118 +08 rtl150.bpl System 11069 +1 TObject.Free 50127c2a +1e rtl150.bpl Rtti 1055 +2 TFinalizer.Destroy 50040a44 +1c rtl150.bpl System 28245 +3 TInterfacedObject._Release 50040950 +10 rtl150.bpl System 28061 +10 @IntfClear 5003e374 +e4 rtl150.bpl System 24190 +129 @FinalizeArray 5003e264 +24 rtl150.bpl System 23963 +21 @FinalizeRecord 5003a186 +12 rtl150.bpl System 11182 +13 TObject.CleanupInstance 5003a0c9 +05 rtl150.bpl System 11049 +1 TObject.FreeInstance 5003a118 +08 rtl150.bpl System 11069 +1 TObject.Free 501478a5 +25 rtl150.bpl Generics.Collections 1946 +3 Rtti.{Generics.Collections}TObjectDictionary<System.Pointer,Rtti.TRttiObject>.ValueNotify 5013f890 +9c rtl150.bpl Generics.Collections 1642 +12 Rtti.{Generics.Collections}TDictionary<System.Pointer,Rtti.TRttiObject>.Clear 5013f6fd +0d rtl150.bpl Generics.Collections 1522 +1 Rtti.{Generics.Collections}TDictionary<System.Pointer,Rtti.TRttiObject>.Destroy 5003a118 +08 rtl150.bpl System 11069 +1 TObject.Free 50132116 +1e rtl150.bpl Rtti 3562 +2 TRttiPackage.Destroy 5013c302 +22 rtl150.bpl Rtti 6413 +3 TRealPackage.Destroy 5003a118 +08 rtl150.bpl System 11069 +1 TObject.Free 5012f711 +25 rtl150.bpl Rtti 3011 +2 TRttiPool.Destroy 5003a118 +08 rtl150.bpl System 11069 +1 TObject.Free 50130474 +3c rtl150.bpl Rtti 3256 +6 TPoolToken.Destroy 50040a44 +1c rtl150.bpl System 28245 +3 TInterfacedObject._Release 50040950 +10 rtl150.bpl System 28061 +10 @IntfClear 5003e374 +e4 rtl150.bpl System 24190 +129 @FinalizeArray 5003e264 +24 rtl150.bpl System 23963 +21 @FinalizeRecord 5003b84e +3e rtl150.bpl System 15309 +20 FinalizeUnits 598592a4 +54 madExcept_.bpl madExcept InterceptFinalizeUnits 598592ac +00 madExcept_.bpl madExcept InterceptHalt0FinalizeUnits 5003be1d +9d rtl150.bpl System 16304 +75 @Halt0 7c9224c5 +00 ntdll.dll LdrShutdownProcess 5009b366 +aa rtl150.bpl Classes 2538 +36 TRegGroup.UnregisterModuleClasses 5009b874 +24 rtl150.bpl Classes 2765 +4 TRegGroups.UnregisterModuleClasses 5009be2e +32 rtl150.bpl Classes 2936 +3 UnRegisterModuleClasses 50040892 +2e rtl150.bpl System 27991 +5 NotifyModuleUnload
madExcept shows (on its last tab - disasm) that the AV is caused by TObject.Free:
5003a110 public System.TObject.Free: ; function entry point 5003a110 11068 test eax, eax 5003a112 jz loc_5003a11b 5003a114 11069 mov dl, 1 5003a116 mov ecx, [eax] 5003a118 call dword ptr [ecx-4] 5003a11b 11070 ret
-
repo owner - changed status to invalid
I am not saying I don't believe you as it sure is the case for you this way. But from my observations this error does not get caused by TestInsight. This is also confirmed by David Millington who is the author or Bookmarks and he was also able to reproduce it without TI installed afaik. Also the callstack is likely caused by some hook going wild so it might be a red herring. TestInsight is neither using System.Rtti nor installing any hooks.
That means I am going to close this issue on my side and want to refer you to David instead who is already working on it because there is nothing that I can do on my side.
-
It's fair enough. Thanks :)
- Log in to comment
Please provide more information - like a crash dump and your DDevExtensions settings. I have installed DDevExtensions 2.83 myself and I don't see any problem. Another way would be to open a second IDE and attach its debugger to the first one and then close it and get me the callstack of the AV.