Gelöst: Was mach ich falsch? {$ifdef debug} geht nicht.
-
- Beiträge: 31
- Registriert: Di 10. Mär 2015, 19:08
- OS, Lazarus, FPC: Mint 21.3 Lazrus 3 Win10/Win11 Delphi 12.x Athens
Gelöst: Was mach ich falsch? {$ifdef debug} geht nicht.
Hallo zusammen,
ich bekomme {$ifdef debug} nicht zum Laufen.
Warum geht das nicht? Der Code wird nicht berücksichtig obwohl ich im Erstellungs-Modus "Debug" das Projekt neu kompiliere.(siehe Screenshot im Anhang)
Danke
ich bekomme {$ifdef debug} nicht zum Laufen.
Warum geht das nicht? Der Code wird nicht berücksichtig obwohl ich im Erstellungs-Modus "Debug" das Projekt neu kompiliere.(siehe Screenshot im Anhang)
Danke
- Dateianhänge
-
DebugMode.JPG
- (424.61 KiB) Noch nie heruntergeladen
Zuletzt geändert von delphifreak am So 30. Mär 2025, 12:40, insgesamt 1-mal geändert.
Re: Was mach ich falsch? {$ifdef debug} geht nicht.
Das wird afaik nicht automatisch gesetzt.
Mach bei "Compilereinstellungen" -> "Benutzerdefinierte..." noch bei "Definitionen..." "debug" rein.
Natürlich im Erstellmodus "Debug" Kontext.
Mach bei "Compilereinstellungen" -> "Benutzerdefinierte..." noch bei "Definitionen..." "debug" rein.
Natürlich im Erstellmodus "Debug" Kontext.
-
- Beiträge: 31
- Registriert: Di 10. Mär 2015, 19:08
- OS, Lazarus, FPC: Mint 21.3 Lazrus 3 Win10/Win11 Delphi 12.x Athens
Re: Was mach ich falsch? {$ifdef debug} geht nicht.
Super, Danke, Gelöst!
Aber wie findet man sowas raus. Ich hatte zuerst in google gesucht, dann hier im Forum. Ohne Erfolg.
Aber wie findet man sowas raus. Ich hatte zuerst in google gesucht, dann hier im Forum. Ohne Erfolg.
Re: Gelöst: Was mach ich falsch? {$ifdef debug} geht nicht.
Keine Ahnung. Läuft wahrscheinlich unter "Erfahrung".
Die Definition "debug" ist ja nicht festgelegt.
Du kannst da reinschreiben was du möchtest. z.B. MyDebug -> {$ifdef MyDebug}
Du kannst bei den Projekteinstellungen unten den Button "Einstellungen anzeigen" klicken.
Dort siehst du, welche "-d" gesetzt sind.

Die Definition "debug" ist ja nicht festgelegt.
Du kannst da reinschreiben was du möchtest. z.B. MyDebug -> {$ifdef MyDebug}
Du kannst bei den Projekteinstellungen unten den Button "Einstellungen anzeigen" klicken.
Dort siehst du, welche "-d" gesetzt sind.
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1650
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Gelöst: Was mach ich falsch? {$ifdef debug} geht nicht.
Du kannst {$ifopt D+} verwenden. Das geht automatisch wenn Debug aktiviert ist.
-
- Beiträge: 1084
- Registriert: Sa 12. Sep 2015, 12:10
- OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
- CPU-Target: Win 32/64, Linux64
- Wohnort: Wien
Re: Gelöst: Was mach ich falsch? {$ifdef debug} geht nicht.
Allerdings kannst du dir auch für ein einzelnes Projekt mehrere "Build Modes" hinterlegen.
ZB einen für Debug, einen anderen für das endgültige Programm und noch einen für den Check mit Heaptrc.
Habe dafür leider keinen shortcut gefunden, aber das Zahnrad Icon (das mit dem Schraubenschlüssel) links neben den beiden grünen Run-Pfeilen ist dein Freund.
Dann ist da eben einmal der Debug-Mode gesetzt und das andere mal nicht -- und du musst das nicht jedesmal in den Projektoptionen ändern
ZB einen für Debug, einen anderen für das endgültige Programm und noch einen für den Check mit Heaptrc.
Habe dafür leider keinen shortcut gefunden, aber das Zahnrad Icon (das mit dem Schraubenschlüssel) links neben den beiden grünen Run-Pfeilen ist dein Freund.
Dann ist da eben einmal der Debug-Mode gesetzt und das andere mal nicht -- und du musst das nicht jedesmal in den Projektoptionen ändern
- Zvoni
- Beiträge: 396
- Registriert: Fr 5. Jul 2024, 08:26
- OS, Lazarus, FPC: Windoof 10 Pro (Laz 2.2.2 FPC 3.2.2)
- CPU-Target: 32Bit
- Wohnort: BW
Re: Gelöst: Was mach ich falsch? {$ifdef debug} geht nicht.
Daran denken, dass {$IFDEF debug} eine Compile-Time-Condition ist.
Wenn später auf Release gewechselt wird, gibts das nicht mehr.
bin mittlerweile umgestiegen, das ganze nicht per Compile-Time-Condition zu machen, sondern per "HasOption" bzw. ParamStr-Auslesen beim Programmstart.
So kann ich trotz Release-Version im Problemfall einfach von der Command-Line "myprogram -debug" aufrufen, und hab (volles) debugging (i.d.R. output in Logfile)
Wenn später auf Release gewechselt wird, gibts das nicht mehr.
bin mittlerweile umgestiegen, das ganze nicht per Compile-Time-Condition zu machen, sondern per "HasOption" bzw. ParamStr-Auslesen beim Programmstart.
So kann ich trotz Release-Version im Problemfall einfach von der Command-Line "myprogram -debug" aufrufen, und hab (volles) debugging (i.d.R. output in Logfile)
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
- af0815
- Lazarusforum e. V.
- Beiträge: 6848
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Gelöst: Was mach ich falsch? {$ifdef debug} geht nicht.
Ich untescheide hier schon zwischen Debug und Release, weil bei Debug sind alle Überprüfungen eingeschaltet und auch Heaptrace an. Bei Release ist alles aus.
Nur das Logging (LazLogger) kann ich auch im Release aktivieren. Nur Logge ich das wesentlich generischer als im Debug.
Damit habe ich zur Laufzeit volle Speed, aber im Debugmodus volle Überprüfungen. Und wenn die App im Debugmodus wirklich zu langsam ist, überlege ich mir ob ich nicht ein Konzeptproblem habe.
Das mit den Einstellungen ist natürlich sehr vom Progrmmierer abhängig, empfehlen kann ich nur, während der Entwicklung alle Prüfungen zu aktivieren.
Nur das Logging (LazLogger) kann ich auch im Release aktivieren. Nur Logge ich das wesentlich generischer als im Debug.
Damit habe ich zur Laufzeit volle Speed, aber im Debugmodus volle Überprüfungen. Und wenn die App im Debugmodus wirklich zu langsam ist, überlege ich mir ob ich nicht ein Konzeptproblem habe.
Das mit den Einstellungen ist natürlich sehr vom Progrmmierer abhängig, empfehlen kann ich nur, während der Entwicklung alle Prüfungen zu aktivieren.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).