Assert funtioniert nicht. Warum nicht?
Assert funtioniert nicht. Warum nicht?
Hallo,
in meinem Lazarus 2.0.12 unter Windows 10 funktioniert der ASSERT Befehl nicht.
Den Compilerschalter {$Assertion ON } habe ich eingestellt. Dennoch funktioniert der Aufruf weder mit True, noch mit False.
Auch wenn ich einen Break-Point auf den Befehl setzte, hält das Programm dort nicht einmal an.
Kann jemand sagen was ich nicht beachtet habe, bzw. falsch mache?
Gruß
Lorca
UNIT UI_Test_Assert;
{$mode objfpc}{$H+}
{$Assertion ON }
INTERFACE
USES
Classes, Sysutils, Forms, Controls, Graphics, Dialogs, StdCtrls;
TYPE
{ Tform1 }
Tform1 = CLASS ( Tform)
BTN_Assert : Tbutton;
CHBX_Assert : Tcheckbox;
PROCEDURE Btn_assertclick( Sender : Tobject) ;
Private
Public
END ;
VAR
Form1 : Tform1;
IMPLEMENTATION
{$R *.lfm}
{ Tform1 }
PROCEDURE Tform1.Btn_AssertClick( Sender : Tobject) ;
BEGIN
Assert( CHBX_Assert.Checked,'Test für ASSERT Funktionalität ' );
End;
END .
in meinem Lazarus 2.0.12 unter Windows 10 funktioniert der ASSERT Befehl nicht.
Den Compilerschalter {$Assertion ON } habe ich eingestellt. Dennoch funktioniert der Aufruf weder mit True, noch mit False.
Auch wenn ich einen Break-Point auf den Befehl setzte, hält das Programm dort nicht einmal an.
Kann jemand sagen was ich nicht beachtet habe, bzw. falsch mache?
Gruß
Lorca
UNIT UI_Test_Assert;
{$mode objfpc}{$H+}
{$Assertion ON }
INTERFACE
USES
Classes, Sysutils, Forms, Controls, Graphics, Dialogs, StdCtrls;
TYPE
{ Tform1 }
Tform1 = CLASS ( Tform)
BTN_Assert : Tbutton;
CHBX_Assert : Tcheckbox;
PROCEDURE Btn_assertclick( Sender : Tobject) ;
Private
Public
END ;
VAR
Form1 : Tform1;
IMPLEMENTATION
{$R *.lfm}
{ Tform1 }
PROCEDURE Tform1.Btn_AssertClick( Sender : Tobject) ;
BEGIN
Assert( CHBX_Assert.Checked,'Test für ASSERT Funktionalität ' );
End;
END .
Re: Assert funtioniert nicht. Warum nicht?
Vielleicht wäre es ganz hilfreich, sich an die Syntax zu halten, statt irgend etwas Beliebiges hinzuschreiben?
https://wiki.lazarus.freepascal.org/$Assertions
Code: Alles auswählen
{$ASSERTIONS ON}
-
- Beiträge: 955
- Registriert: Mi 3. Jun 2020, 07:18
- OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
- CPU-Target: Aarch64 bis Z80 ;)
- Wohnort: München
Re: Assert funtioniert nicht. Warum nicht?
Der Compiler sollte da auch eine Warnung bringen:
Code: Alles auswählen
PS D:\fpc\git> fpc -FEtestoutput .\fpctests\tassert.pp
Free Pascal Compiler version 3.2.2 [2022/01/02] for i386
Copyright (c) 1993-2021 by Florian Klaempfl and others
Target OS: Win32 for i386
Compiling .\fpctests\tassert.pp
tassert.pp(3,2) Warning: Illegal compiler directive "$ASSERTION"
Linking testoutput\tassert.exe
7 lines compiled, 0.0 sec, 28080 bytes code, 1316 bytes data
1 warning(s) issued
FPC Compiler Entwickler
Re: Assert funtioniert nicht. Warum nicht?
Stimmt. Und die IDE zeigt sogar ein Warnschild bei der Zeile.PascalDragon hat geschrieben: Do 17. Feb 2022, 09:11 Der Compiler sollte da auch eine Warnung bringen:
-
- Beiträge: 2122
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: Assert funtioniert nicht. Warum nicht?
Du kannst auch Strg+Leertaste drücken und Lazarus sagt dir was für Compilerswitches es gibt
Re: Assert funtioniert nicht. Warum nicht?
@Warf: Lustig, du hast die gleichen Highlighter Farben wie ich, obwohl die gar nicht in der Standardauswahl sind. 
Woher kommt das Schema eigentlich? Von Delphi?

Woher kommt das Schema eigentlich? Von Delphi?
-
- Beiträge: 2122
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: Assert funtioniert nicht. Warum nicht?
Ich weiß es nicht, das ist ein style den ich mir vor Jahren mal gemacht habe und seit dem immer in Lazarus importiere.
Eigentlich hab ich den mir selbst ausgedacht, hab dem auch einfach den Namen "Custom" gegeben, also nicht sonderlich vielsagend xD. Aber kann natürlich sein das ich da unterbewust von irgendwas inspirirt wurde. Delphi ist es definitiv nicht, die benutzen Dunkelblaue Keywords und Schwarzen Text, und das fand ich immer zu "depressiv".
Eigentlich hab ich den mir selbst ausgedacht, hab dem auch einfach den Namen "Custom" gegeben, also nicht sonderlich vielsagend xD. Aber kann natürlich sein das ich da unterbewust von irgendwas inspirirt wurde. Delphi ist es definitiv nicht, die benutzen Dunkelblaue Keywords und Schwarzen Text, und das fand ich immer zu "depressiv".
Re: Assert funtioniert nicht. Warum nicht?
Ja, ich kann mich irgendwie nicht erinnern, dieses Farbschema "erfunden" zu haben.Warf hat geschrieben: Do 17. Feb 2022, 11:38 Aber kann natürlich sein das ich da unterbewusst von irgendwas inspiriert wurde.
Aber das musste bei mir "schon immer" so sein, jedenfalls seit gut 20 Jahren.
Irgendwo her hatte ich mich wohl daran gewöhnt, aber ich weiss es nicht mehr.
Und du hast exakt das Gleiche. Kann das Zufall sein?

Re: Assert funtioniert nicht. Warum nicht?
Hi,
Danke schön.
Ja, ich habe wohl Tomaten auf den Augen gehabt, SRY.
Während ich sonst allen Sch.... in die Zwischenablage hole, und dann dorthin kopiere wo ich es brauche,
habe ich es diesmal unterlassen, und sofort eines auf die Fr... bekommen.
Jedoch, eine Fehlermeldung wie PascalDragon sie beschreibt, habe ich nicht erhalten. Dies währe eine echte Hilfe gewesen.
Meine Nachrichtenliste liefert "Projekt kompilieren -> Erfolg".
Die Warnung wie sie von theo beschrieben wird, habe ich nicht gesehen und auch nicht darauf geachtet, da diese sehr klein und nur eine Warnung ist. Außerdem habe ich da überhaupt nicht drauf geachtet.
Wie auch immer, mein Fehler, SRY.
Konnte aus diesem Threat jedoch einiges dazu lernen. (z.B. auf solche Warnhinweise im Editor besser zu achten)
Wenn jemand weis wie ich eine entsprechende Fehlermeldung in den Einstellungen einfügen kann währe es toll wenn diese Info mitgeteilt werden könnte. Meine Compiler Einstellungen sind die Standard Einstellungen.
Nochmals herzlichen Dank für eure Antworten.
Gruß
Lorca
Danke schön.

Ja, ich habe wohl Tomaten auf den Augen gehabt, SRY.
Während ich sonst allen Sch.... in die Zwischenablage hole, und dann dorthin kopiere wo ich es brauche,
habe ich es diesmal unterlassen, und sofort eines auf die Fr... bekommen.

Jedoch, eine Fehlermeldung wie PascalDragon sie beschreibt, habe ich nicht erhalten. Dies währe eine echte Hilfe gewesen.
Meine Nachrichtenliste liefert "Projekt kompilieren -> Erfolg".
Die Warnung wie sie von theo beschrieben wird, habe ich nicht gesehen und auch nicht darauf geachtet, da diese sehr klein und nur eine Warnung ist. Außerdem habe ich da überhaupt nicht drauf geachtet.
Wie auch immer, mein Fehler, SRY.
Konnte aus diesem Threat jedoch einiges dazu lernen. (z.B. auf solche Warnhinweise im Editor besser zu achten)

Wenn jemand weis wie ich eine entsprechende Fehlermeldung in den Einstellungen einfügen kann währe es toll wenn diese Info mitgeteilt werden könnte. Meine Compiler Einstellungen sind die Standard Einstellungen.
Nochmals herzlichen Dank für eure Antworten.

Gruß
Lorca
Re: Assert funtioniert nicht. Warum nicht?
Das ist keine Fehlermeldung sondern nur eine Warnung und die findest du bestimmt auch, wenn du sie suchst.Lorca hat geschrieben: Sa 19. Feb 2022, 08:28 Jedoch, eine Fehlermeldung wie PascalDragon sie beschreibt, habe ich nicht erhalten. Dies währe eine echte Hilfe gewesen.
Sie ist halt irgendwo in dem Meldungen drin. z.B. hier auf Zeile 9
Unten steht "Verbose: 3 warning(s) issued", die kann man dann nachschauen.Projekt kompilieren, Ziel: /home/theo/fpcupdeluxe/projects/project1: Erfolg, Warnungen: 3, Hinweise: 2
Hint: Start of reading config file /home/theo/fpcupdeluxe/fpc/bin/x86_64-linux/fpc.cfg
Hint: End of reading config file /home/theo/fpcupdeluxe/fpc/bin/x86_64-linux/fpc.cfg
Verbose: Free Pascal Compiler version 3.2.2-rrelease_3_2_2-0-g0d122c4953 [2021/10/18] for x86_64
Verbose: Copyright (c) 1993-2021 by Florian Klaempfl and others
Verbose: Target OS: Linux for x86-64
Verbose: Compiling /home/theo/fpcupdeluxe/projects/project1.lpr
Verbose: Compiling unit1.pas
unit1.pas(4,2) Warning: Illegal compiler directive "$ASSERTION"
Verbose: Compiling resource /home/theo/fpcupdeluxe/projects/lib/x86_64-linux/project1.or
Verbose: Linking /home/theo/fpcupdeluxe/projects/project1
project1.lpr(24,1) Warning: "crtbeginS.o" not found, this will probably cause a linking failure
project1.lpr(24,1) Warning: "crtendS.o" not found, this will probably cause a linking failure
Verbose: 52 lines compiled, 6.0 sec
Verbose: 3 warning(s) issued
Verbose: 2 hint(s) issued