Assert funtioniert nicht. Warum nicht?

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
Lorca
Beiträge: 196
Registriert: Di 3. Nov 2020, 12:25

Assert funtioniert nicht. Warum nicht?

Beitrag von Lorca »

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 .

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Assert funtioniert nicht. Warum nicht?

Beitrag von theo »

Vielleicht wäre es ganz hilfreich, sich an die Syntax zu halten, statt irgend etwas Beliebiges hinzuschreiben?

Code: Alles auswählen

{$ASSERTIONS ON} 
https://wiki.lazarus.freepascal.org/$Assertions

PascalDragon
Beiträge: 825
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?

Beitrag von PascalDragon »

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

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Assert funtioniert nicht. Warum nicht?

Beitrag von theo »

PascalDragon hat geschrieben:
Do 17. Feb 2022, 09:11
Der Compiler sollte da auch eine Warnung bringen:
Stimmt. Und die IDE zeigt sogar ein Warnschild bei der Zeile.
assert.png
assert.png (17.1 KiB) 1323 mal betrachtet

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Assert funtioniert nicht. Warum nicht?

Beitrag von Warf »

Du kannst auch Strg+Leertaste drücken und Lazarus sagt dir was für Compilerswitches es gibt
Laz.png
Laz.png (15.43 KiB) 1314 mal betrachtet

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Assert funtioniert nicht. Warum nicht?

Beitrag von theo »

@Warf: Lustig, du hast die gleichen Highlighter Farben wie ich, obwohl die gar nicht in der Standardauswahl sind. :D
Woher kommt das Schema eigentlich? Von Delphi?

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Assert funtioniert nicht. Warum nicht?

Beitrag von Warf »

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".

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Assert funtioniert nicht. Warum nicht?

Beitrag von theo »

Warf hat geschrieben:
Do 17. Feb 2022, 11:38
Aber kann natürlich sein das ich da unterbewusst von irgendwas inspiriert wurde.
Ja, ich kann mich irgendwie nicht erinnern, dieses Farbschema "erfunden" zu haben.
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? :wink:

Lorca
Beiträge: 196
Registriert: Di 3. Nov 2020, 12:25

Re: Assert funtioniert nicht. Warum nicht?

Beitrag von Lorca »

Hi,

Danke schön. :D

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. :D

Gruß
Lorca

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Assert funtioniert nicht. Warum nicht?

Beitrag von theo »

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.
Das ist keine Fehlermeldung sondern nur eine Warnung und die findest du bestimmt auch, wenn du sie suchst.
Sie ist halt irgendwo in dem Meldungen drin. z.B. hier auf Zeile 9
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
Unten steht "Verbose: 3 warning(s) issued", die kann man dann nachschauen.

Antworten