Für alle, die es auch brauchen / haben möchten.
Die folgenden Änderungen an der Datei "jcl\examples\
vcl\debugextension\JclDebugIdeImpl.p as" bewirken, dass der Experte die Option "Map-Datei: detailliert"
nicht selbstständig abändert sondern statt dessen die Einstellung als (zusätzlichen) Schalter benutzt, ob die JCLDEBUG-Informationen in die Datei eingebunden werden.
Nochmal einzeln:
1. Der Schalter "Projekt" > "Insert JCL debug data" steuert, ob der Experte überhaupt aktiv ist.
2. Ist er aktiv, dann steuert man über "Projekt" > "Optionen..." mit der Einstellung "Map-Datei" auf der Seite "Linker", ob die Debug-Daten wirklich eingebunden werden.
2a. Einstellung "detailliert" -> ja
2b. Andere Einstellung -> nein
Hier ein Unified Diff zur Originalversion (JCL 1.95 aus dem Build 1848). Deaktivierte Zeilen wurde nicht entfernt sondern auskommentiert.
Code:
--- JclDebugIdeImpl.pas.orig Mon Mar 21 04:04:14 2005
+++ JclDebugIdeImpl.pas Sun Nov 27 23:11:03 2005
@@ -187,4 +187,6 @@
begin
if FInsertDataAction.Checked and Assigned(FCurrentProject) then
+ // VS: added to control the feature on a per-project basis via map file settings
+ if FSaveMapFile = MapFileOptionDetailed then
begin
ProjOptions := FCurrentProject.ProjectOptions;
@@ -260,4 +262,5 @@
if FInsertDataAction.Checked then
begin
+ { // VS: moved check for installed packages to the bottom
if IsInstalledPackage(Project) then
begin
@@ -267,4 +270,5 @@
end
else
+ }
begin
FCurrentProject := Project;
@@ -273,6 +277,14 @@
FOptionsModifiedState := ProjOptions.ModifiedState;
FSaveMapFile := ProjOptions.Values[MapFileOptionName];
+ { // VS: removed to control the feature on a per-project basis via map file settings
if FSaveMapFile <> MapFileOptionDetailed then
ProjOptions.Values[MapFileOptionName] := MapFileOptionDetailed;
+ }
+ // VS: moved check for installed packages here
+ if (FSaveMapFile = MapFileOptionDetailed) and IsInstalledPackage(Project) then
+ begin
+ MessageDlg(Format(RsCantInsertToInstalledPackage, [Project.FileName]), mtError, [mbNo], 0);
+ FSaveMapFile := 0;
+ end;
end;
end;