Delphi XE6 can't compile last 1.2 version
Still can't compile latest version spring4d. In debug mode:[dcc32 Fatal Error] Internal Error: DBG3198 In release mode OK. Tested on two configurations (different PC) with same big project.. Older version from 2016/0312 is OK. Please fix it. Thanks.
Comments (19)
-
repo owner -
reporter Hello Stefan,
sorry for my bad english. I tried use Build with and without Debug configurations,building OK,but when I try compile my big project with this version Spring,I get error DBG3198. I tried build Spring in IDE,build OK,but with my project same error. I tried settings Use debug DCUs,use MSBUILD etc,but same error. I create very small project and using Container and IList for example,project builded OK. Google says that this error (Internal error DBGxxx) is problem with debugger,but I cannot locate combination from my project and spring,which generate this error:( I am frustrated and return to older version. When I have time,I will try clone versions from my ok version,commit by commit to find different,which create this error.
-
repo owner Try removing parts of your application until the error goes away to pinpoint its cause.
Also make sure your are using XE6 with Update1
-
reporter I have XE6 with update 1.Removing some parts is very problematic.I am checkouts down commits and try find first ok version for me.When find this I try find problematic place.
-
reporter This is commit 9de4dc543d5f4ac45a2cf5d8c8d246df69943ce3 that break compiling for me.Now I will study why and what do I need change in my code.
-
reporter I create small project only for test new Spring version.Problem is in Spring.Persistence.*.I have one unit with model definition only,but when I use Spring.Persistence.Mapping.Attributes I got DBG3198.Without using this unit I compile OK.Is possible now find incompatibility between spring 1.2 and spring.persistence? Edit: I found problematic unit Spring.Persistence.Core.Exceptions.
-
repo owner Please post the project that produces the error
-
reporter - attached SpringTestProject_ERR_DBG3198.zip
This is simple project which produce DBG3198 error in debug mode compiling
-
repo owner It's exactly what I thought when I first saw this report. You are pointing your project to the pas files and not the dcus as you should. That causes the project options to be applied to the Spring units as well which causes the error in this case as there was obviously a defect in the compiler in XE6.
The recommended way is putting the DCU folder to the library path of your Library path under Environment Options->Delphi Options->Library (as is done when using the Build.exe and checking "Update Delphi Registry").
Fixing the issue in the project you posted can be done by just removing the implementation uses as the units there are not used anyway but I guess this will just fix the issue in this case and pop up again when adding back other units. I will see if this is fixable with little effort.
-
reporter I have set Library path to $(SPRINGPATH)\Library\DelphiXE6\$(Platform)\$(Config) where SPRINGPATH is root directory spring4d from bitbucket.DCUs created by Build.exe. Edit: I replaced $(SPRINGPATH)\Library\DelphiXE6\$(Platform)\$(Config) to $(SPRINGPATH)\Library\DelphiXE6\$(Platform)\Release but error DBG3198 still again.
-
repo owner Seems there is more going on here - I found this entered into Embarcadero JIRA: https://quality.embarcadero.com/browse/RSP-14974
-
reporter In Browsing path I have: $(SPRINGPATH)\Source; $(SPRINGPATH)\Source\Base; $(SPRINGPATH)\Source\Base\Collections; $(SPRINGPATH)\Source\Base\Logging; $(SPRINGPATH)\Source\Base\Patches; $(SPRINGPATH)\Source\Core\Container; $(SPRINGPATH)\Source\Core\Interception; $(SPRINGPATH)\Source\Core\Logging; $(SPRINGPATH)\Source\Core\Mocking; $(SPRINGPATH)\Source\Core\Services; $(SPRINGPATH)\Source\Extensions\Cryptography; $(SPRINGPATH)\Source\Extensions\Utils; $(SPRINGPATH)\Source\Persistence\Core; $(SPRINGPATH)\Source\Persistence\Adapters; $(SPRINGPATH)\Source\Persistence\Criteria; $(SPRINGPATH)\Source\Persistence\Mapping; $(SPRINGPATH)\Source\Persistence\ObjectDataset; $(SPRINGPATH)\Source\Persistence\SQL;
-
repo owner Browsing path does not matter - its for moving to the sources when using "Find declaration" (aka Ctrl+Click)
-
repo owner Changing the library path in your environment options does not do anything if you don't remove the paths to the pas files in your project because they are always preferred by the compiler.
When doing so I cannot reproduce the error.
-
reporter OK,on tested small project I remove all from Project-Search path and now...voila compiled.Tommorow I test this with my complex project.
-
repo owner I found a minimal case to reproduce this and posted it on the aforementioned JIRA issue.
Since this seems to affect at least XE5 up to Berlin I will work on a fix (probably removing inline from all the TCollection methods)
-
repo owner - changed status to resolved
fixed issue
#180→ <<cset 78b5b68b0714>>
-
repo owner fixed issue
#180→ <<cset 78b5b68b0714>>
-
repo owner - changed version to 1.2
- Log in to comment
If you don't post any source that reproduces this issue there is no way to find the issue and fix it (if it is fixable and not a compiler issue).
We always (might be not in every commit though on an unreleased version) make sure that Spring4D itself compiles in both configurations (using either Build.exe or building the project group inside the IDE) and then reference the compiled DCUs in your project. Building Spring4D sources together with any other code in any combination cannot be tested by us.