View Issue Details

IDProjectCategoryView StatusLast Update
0006165JEDI Code LibraryJclDebug*public2019-05-04 18:32
ReporterThalion77Assigned ToAHUser 
PrioritynormalSeveritycrashReproducibilityalways
Status feedbackResolutionopen 
Product VersionVersion 2.4 
Target VersionFixed in Version 
Summary0006165: COM Client and COM Server include JclDebug => Access Violation
DescriptionWhen including JclDebug in the uses clause both in a COM server library and in a COM client application, then the COM client will raise an exception AFTER the last code line (in Debug mode):

Project xxx raised too many consecutive exceptions: "access violation at 0x03854fd2: read of address 0x025ea380". Process stopped. Use Step or Run to continue.

In Release mode, the COM application will never end.
Additional InformationIt seems that this problem only occurs in a 64bit Windows environment. I cannot replicate this problem under Windows XP.

My environment causing the problem is as follows:
Windows 7 Professional, SP1, 64bit, German
Delphi XE Version 15.0.3953.35171, Update 1
JEDI Code Library 2.4.1.4571

The problem does not occur anymore, if JclDebug will be removed either in the server or in the client.

The attached project contains a very minimized version of a COM client and COM Server library. The COM server library provides a function "Test" which will be called by the client.
TagsNo tags attached.
Fixed in GIT commit
Fixed in SVN revision
IDE versionAll

Relationships

has duplicate 0006427 new The Include Unit Versioning JCL feature causes an app crash at exit time 
has duplicate 0006364 new Exception in "UnregisterUnitVersion" after closing my application 

Activities

2013-07-12 08:19

 

TestCOM.rar (176,065 bytes)

Thalion77

2013-09-03 07:35

reporter   ~0020630

Hello,

has anyone already verified this issue?

Thank you,
Robert

AHUser

2014-05-16 23:56

developer   ~0020972

The issue is caused by JclUnitVersioning code. The EXE is the owner of the UnitVersioning lists but the COM-DLL is unloaded after the EXE's finalization ran. So the UnitVersioning lists are already destroyed but the COM-Server DLL doesn't know and tries to access them.

A rewrite of the UnitVersioning code may be required.

Thalion77

2015-09-01 00:09

reporter   ~0021181

Is there any progress on that issue? I still have the problem that my application has to be explicitly killed after closing it.

Thanks,
Robert

Thalion77

2016-06-19 19:20

reporter   ~0021294

Unfortunately there is still no progress concerning this bug. Hope that someone will take care about this bug report.

AHUser

2016-08-01 20:12

developer   ~0021299

You can recompile the JCL without the UnitVersioning option. That's what I do.

kevlevrone

2019-05-03 14:57

reporter   ~0021798

I can personally confirm that adding JCL debug information to LARGE Win64 binaries does corrupt the binary file.
What happened in my application was that adding JCL debug information was mangling the DFM values linked in the executable: the program crashed while loading the first form. https://goo.gl/KyvnZF
I tried to apply the fix included hereby and now it is working perfectly.

mh

2019-05-04 18:32

reporter   ~0021807

@kevlevrone which fix? The link in your note doesn't look like it is Delphi related It's more related to plagiarism and detecting those.

Issue History

Date Modified Username Field Change
2013-07-12 08:19 Thalion77 New Issue
2013-07-12 08:19 Thalion77 File Added: TestCOM.rar
2013-07-12 08:19 Thalion77 IDE version => All
2013-09-03 07:35 Thalion77 Note Added: 0020630
2014-05-16 23:56 AHUser Note Added: 0020972
2014-05-16 23:56 AHUser Assigned To => AHUser
2014-05-16 23:56 AHUser Status new => feedback
2015-09-01 00:09 Thalion77 Note Added: 0021181
2016-06-19 19:20 Thalion77 Note Added: 0021294
2016-08-01 20:12 AHUser Note Added: 0021299
2016-08-06 00:49 AHUser Relationship added has duplicate 0006427
2016-08-06 00:50 AHUser Relationship added has duplicate 0006364
2019-05-03 14:57 kevlevrone Note Added: 0021798
2019-05-04 18:32 mh Note Added: 0021807