Debug- und Releaseprofil [gelöst]

Für Fragen rund um die Ide und zum Debugger
Antworten
aldicek
Beiträge: 37
Registriert: Do 6. Mär 2008, 12:48
OS, Lazarus, FPC: WinXP/Mint13KDE (Lazarus 1.0.8 FPC 2.6.2)
CPU-Target: 64 Bit
Wohnort: Halle (Saale)

Debug- und Releaseprofil [gelöst]

Beitrag von aldicek »

Wie ich in der FreePascal-Wiki gelernt habe, kann man ja mit einem Schalter auf schnelle Art und Weise zwischen verschiedenen Compilerprofilen für die Projekte wechseln. Eine sehr schöne Sache. Wie aber schaffe ich es, damit auch noch bedingte Compilierung einzubinden? Ich vermute mal, dass das was mit Makros zu tun hat, womit ich mich aber noch nicht weiter beschäftigt habe.
Sagen wir mal, ich will im Debugging-Profil das Heaptrace-Log einbinden, im Release-Profil aber nicht. (Ich habe das z.B. in jedem Projektquelltext prinzipiell eingebunden.

Code: Alles auswählen

program xyz;
 
{$mode objfpc}{$H+}
 
uses
  heaptrc, // <===
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}
  clocale,
  {$ENDIF}
  Interfaces, // this includes the LCL widgetset
  Forms,
  SysUtils,
  DefaultTranslator,
  lazcontrols,
  Main,
  wcomp;
 
begin
  DeleteFile(ExtractFilePath(ParamStr(0)) + 'heaptrc.trc'); // <===
  SetHeapTraceOutput(ExtractFilePath(ParamStr(0)) + 'heaptrc.trc'); // <===
 
  Application.Title := rsApplicationTitle;
  RequireDerivedFormResource := True;
  Application.Initialize;
  Application.CreateForm(TMainForm, MainForm);
  Application.Run;
end.
Ich möchte nun die mit // <=== gekennzeichneten Zeilen nur im Debugging-Profil kompilieren, nicht jedoch im Release-Profil. Wie würde ein Programmierer das machen?
Bin für jeden sachdienlichen Hinweis dankbar.

Aldicek
Zuletzt geändert von aldicek am Di 6. Aug 2013, 08:30, insgesamt 1-mal geändert.

Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Re: Debug- und Releaseprofil

Beitrag von Bauer321 »

Das mit dem profil kenne ich nicht richtig aber du könntest z.B. am anfang der unit folgendes machen:

{define debug}
Und dann wenn du eine unit nur im debug modus willst dann {ifdef debug}unitname,{endif}

Und wenn du den release modus willst dann halt am anfang das debug ersetzen
www.mcpatcher.net | www.hoeper.me

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Debug- und Releaseprofil

Beitrag von Christian »

Du kannst unter Projekteinstellungen->Andere uner Benutzerdefinierte Einstellungen im Debugprofil -dDEBUG einsetzen
dann kannst mit {$ifdef DEBUG} {$endif}
im Code die Geschichten ausklammern die nur im Debugprofil an sein sollen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

aldicek
Beiträge: 37
Registriert: Do 6. Mär 2008, 12:48
OS, Lazarus, FPC: WinXP/Mint13KDE (Lazarus 1.0.8 FPC 2.6.2)
CPU-Target: 64 Bit
Wohnort: Halle (Saale)

Re: Debug- und Releaseprofil

Beitrag von aldicek »

Christian hat geschrieben:Du kannst unter Projekteinstellungen->Andere uner Benutzerdefinierte Einstellungen im Debugprofil -dDEBUG einsetzen
dann kannst mit {$ifdef DEBUG} {$endif}
im Code die Geschichten ausklammern die nur im Debugprofil an sein sollen.
Vielen Dank,

genau nach so etwas habe ich gesucht! Hab es gleich probiert, geht ja echt einfach (- wenn man weiß, wo man suchen muss).
Dank auch an Bauer. Dass man so Code von der Kompilierung ausschließen bzw. darin einschließen kann, wusste ich. Was mir fehlte war, an welcher Stelle ich einen solchen $IFDEF-Bezeichner definieren kann.

Grüße
Aldicek

Antworten