Reputation: 393
The Delphi 7 compiler appears to crash during linking stage.
This is the error:
Access violation at address 00C01A1A in module 'dcc70.dll'. Read of address F0002104.
Upvotes: 3
Views: 3683
Reputation: 393
When generate remote debug symbols (RSM) are turned on in the project options linker config, this can happen if properties of an exception object used in a try..except on handler is in a finalization of a unit for Delphi 7.
procedure Log(m: string);
begin end;
initialization
finalization
try
except
on E : exception do
Log(e.className);
end;
end.
The method to figure this out may be useful in other situations. To solve this problem, SysInternals procmon.exe was used to trace dcc32.exe which showed it crashed during access of the rsm file generation. (It was difficult to determine this by tracing Delphi IDE with procmon, because the IDE does many other things after the crash that are logged). Comparing the file content of a successful build of the rsm with a failed build, from the point in the file of the error revealed the unit name to investigate. Considering the diffs of the unit from a previous working copy and then trying 2 compiles after each change on that unit isolated the exact problem.
It is not known why the first compile doesn't cause a crash, but on compiling without any changes a second time yields the crash.
Upvotes: 3