[Gelöst] Kaputtes Package (lazDaemon) - wie diagnostiziert man lpk's?

Rund um die LCL und andere Komponenten
Antworten
Nimral
Beiträge: 390
Registriert: Mi 10. Jun 2015, 11:33

[Gelöst] Kaputtes Package (lazDaemon) - wie diagnostiziert man lpk's?

Beitrag von Nimral »

Mir ist heute Lazarus 2.2.0RC2 krachend und ohne jeden nachvollziehbaren Grund mitten ins Gesicht explodiert.

Urplötzlich konnte ich mein Projekt nicht mehr laden. Jede Menge völlig wirre und nutzlose Meldungen, dazwischen ein paar Access Violations. Allen gemeinsam war, dass das lpm file nicht mehr mit dem TDaemon Objekt in meinem Programm zusammenpassen wollte. Alle Properties wurden als irgendwie ungültig angemäkelt, und dann schmiert Lazarus sowieso komplett ab. Versuche, Lazarus neu zu bauen, endeten im völligen Desaster.

Lazarus habe ich nur durch "zurück auf los" wieder in den Griff bekommen. Ich habe %Appdata%\Local\Lazarus gelöscht, danach alle Packages wieder neu kompiliert und installiert, und jetzt läuft es wieder. An meinem Programm habe ich wohlgemerkt keinen Strich verändert.

Im Kern des Absturzes steht irgendwie das lazDaemon Package, mehr weiß ich im Moment noch nicht.

Nach dem Neuinstallieren: beim Testen des TDaemon Object Inspectors, der jetzt plötzlioch alle Properties aus der lpm Datei wieder kennen mag, fällt auf: ich kann die Properties "onCreate" und "onDestroy" nicht setzen. Ursache scheint zu sein, dass weder das darunterliegende TDaemon Objekt, noch einer seiner Vorgänger, OnCreate und OnDestroy published. Das war allerdings schon vor dem Absturz so, ich habs kopfschüttelnd zur Kenntnis genommen, jetzt da ich mich sowieso mit dem Paket herumschlage dachte ich, ich geh der Sache vielleicht auch noch schnell auf den Grund.

Hier der Object Inspector und die Source von TDaemon aus dem aktuellen LazDaemon package (0.9.9)
2022-02-09 14_00_35-Lazarus IDE v2.2.0RC2 - Daemon application.png
2022-02-09 14_00_35-Lazarus IDE v2.2.0RC2 - Daemon application.png (38.52 KiB) 1814 mal betrachtet
2022-02-09 13_52_00-Lazarus IDE v2.2.0RC2 - Daemon application.png
2022-02-09 13_52_00-Lazarus IDE v2.2.0RC2 - Daemon application.png (23.73 KiB) 1814 mal betrachtet
Die Fehlermeldung im Messages Fenster:

Code: Alles auswählen

daemonunit.pas(8,10) Error: identifier not found: OnCreate
Wie geraten diese beiden Events in den Object Inspector? Ich dachte immer, die Verbindung zwischen Object Inspector und Objekt wird automatisch generiert auf Grund der "published" Section. Es dürfte so einen Fehler dann eigentlich gar nicht geben.

Ich habe das lpk neu übersetzt und neu in der IDE installiert, einen clean Build angestoßen, das ändert alles nichts. Eigentlich ist so ein Verhalten doch technisch unmöglich.

Wer kann mich erhellen, wieso es dennoch möglich ist, dass Object inspector und Published Sektion auseinandergedriftet sind?

Armin.
Zuletzt geändert von Nimral am Mi 9. Feb 2022, 18:20, insgesamt 1-mal geändert.

wp_xyz
Beiträge: 5156
Registriert: Fr 8. Apr 2011, 09:01

Re: Kaputtes Package (lazDaemon) - wie diagnostiziert man lpk's?

Beitrag von wp_xyz »

Nimral hat geschrieben: Mi 9. Feb 2022, 14:12 ich kann die Properties "onCreate" und "onDestroy" nicht setzen. Ursache scheint zu sein, dass weder das darunterliegende TDaemon Objekt, noch einer seiner Vorgänger, OnCreate und OnDestroy published. Das war allerdings schon vor dem Absturz so, ich habs kopfschüttelnd zur Kenntnis genommen, jetzt da ich mich sowieso mit dem Paket herumschlage dachte ich, ich geh der Sache vielleicht auch noch schnell auf den Grund.
[...]
Wie geraten diese beiden Events in den Object Inspector? Ich dachte immer, die Verbindung zwischen Object Inspector und Objekt wird automatisch generiert auf Grund der "published" Section. Es dürfte so einen Fehler dann eigentlich gar nicht geben.
TDaemon stammt von TCustomDaemon ab und dieser von TDatamodule. Und im TDatamodule sind OnCreate und OnDestroy gepublished. Daher stehen sie im Objektinspektor von TDaemon1.

Warum du die Properties trotzdem nicht setzen kannst, weiß ich nicht. Vielleicht eine Folge des anderen Problems, das Lazarus "explodieren" hat lassen.

Nimral
Beiträge: 390
Registriert: Mi 10. Jun 2015, 11:33

Re: Kaputtes Package (lazDaemon) - wie diagnostiziert man lpk's?

Beitrag von Nimral »

Ich seh da Create und Destroy, aber nicht "onCreate" und "onDestroy".
Dateianhänge
2022-02-09 16_29_35-Lazarus IDE v2.2.0RC2 - Daemon application.png
2022-02-09 16_29_35-Lazarus IDE v2.2.0RC2 - Daemon application.png (40.75 KiB) 1786 mal betrachtet

wp_xyz
Beiträge: 5156
Registriert: Fr 8. Apr 2011, 09:01

Re: Kaputtes Package (lazDaemon) - wie diagnostiziert man lpk's?

Beitrag von wp_xyz »

Den RC2 habe ich nicht mehr, aber im offiziellen Release von v2.2 steht definitiv "OnCreate" und "OnDestroy", und übrigens auch schon in v1.4.4, der ältesten auf meiner Festplatte.

Vielleicht war da der eingebaute Code-Verstümmler am Werk, der die User dazu bringen will, die Release-Candidates durch die offiziellen Release zu ersetzen?
Dateianhänge
tdatamodule.png
tdatamodule.png (40.5 KiB) 1783 mal betrachtet

Nimral
Beiträge: 390
Registriert: Mi 10. Jun 2015, 11:33

Re: Kaputtes Package (lazDaemon) - wie diagnostiziert man lpk's?

Beitrag von Nimral »

Wenn das mal keine heiße Spur ist :-)

Ich habe das Package, das mit 2.2.0RC2 mitkommt.

Wo würde ich denn ein Aktuelleres bekommen, das mit meinem Lazarus harmoniert?

wp_xyz
Beiträge: 5156
Registriert: Fr 8. Apr 2011, 09:01

Re: Kaputtes Package (lazDaemon) - wie diagnostiziert man lpk's?

Beitrag von wp_xyz »

Installier dir doch einfach das offizielle Release von Lazarus mit dem zugehörigen FPC (TDatamodule gehört zum FPC), dauert ein paar Minuten, und ein paar Minuten sich alles einzurichten und die Komponenten zu installieren. Mache eine "sekundäre Installation", dann bleibt deine alte Version unangetastet, und wenn alles geht, kannst du die alte löschen und nur noch mit v2.2 arbeiten.

Nimral
Beiträge: 390
Registriert: Mi 10. Jun 2015, 11:33

Re: Kaputtes Package (lazDaemon) - wie diagnostiziert man lpk's?

Beitrag von Nimral »

Aus irgendeinem Grund hatte ich mich auf die 2.2.0RC1 und 2.2.0RC2 eingelassen ... ich kann mich nicht mehr genau erinnern ... ich brauche die FGL, ist es nicht so, dass die in der 2.0.12 noch nicht geht?

Oops, ich sehe gerade, die 2.2.0 wurde relased? Unfair, das genau während meines Urlaubs zu machen wo ich es nicht mitbekomme :-)

Ich hol mir mal die 2.2.0 und schau rein ...

wp_xyz
Beiträge: 5156
Registriert: Fr 8. Apr 2011, 09:01

Re: Kaputtes Package (lazDaemon) - wie diagnostiziert man lpk's?

Beitrag von wp_xyz »

Nimral hat geschrieben: Mi 9. Feb 2022, 17:35 Aus irgendeinem Grund hatte ich mich auf die 2.2.0RC1 und 2.2.0RC2 eingelassen ...
Ist doch gut. Je mehr Leute die Release-Candidates testen, um so besser wird das Release.

Nimral
Beiträge: 390
Registriert: Mi 10. Jun 2015, 11:33

Re: Kaputtes Package (lazDaemon) - wie diagnostiziert man lpk's?

Beitrag von Nimral »

Geb ich Dir prinzipiell recht, aber im Moment nagen diese sinnlosen Problemchen und Nickligkeiten unerbittlich an meinen Zeitscheiben.

Aber eine gute Nachricht hab ich auch: mit der 2.2.0 kommt die richtige daemonapp unit mit --> jetzt klappt es!

Herzlichen Dank, und einen schönen Abend noch,

Armin,

Benutzeravatar
six1
Beiträge: 837
Registriert: Do 1. Jul 2010, 19:01

Re: [Gelöst] Kaputtes Package (lazDaemon) - wie diagnostiziert man lpk's?

Beitrag von six1 »

Ich habe LAZ_2-3_0 FPC_3-2-2 am Start und produktiv; ohne Probleme (fpcupdeluxe Inst.)
Gruß, Michael

PascalDragon
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: Kaputtes Package (lazDaemon) - wie diagnostiziert man lpk's?

Beitrag von PascalDragon »

Nimral hat geschrieben: Mi 9. Feb 2022, 18:14 Geb ich Dir prinzipiell recht, aber im Moment nagen diese sinnlosen Problemchen und Nickligkeiten unerbittlich an meinen Zeitscheiben.
Du solltest den RC ja auch nicht bis zum Sankt Nimmerleinstag nutzen. ;) Die Idee ist, dass man damit testet, ob die eigenen Projekte funktionieren, oder ob man andere Probleme entdeckt, die vor dem Release behoben werden sollen und dann wechselt man möglichst bald danach auf das finale Release, sobald es behoben ist.
FPC Compiler Entwickler

Sieben
Beiträge: 289
Registriert: Mo 24. Aug 2020, 14:16
OS, Lazarus, FPC: Ubuntu Xenial 32, Lazarus 2.2.0, FPC 3.2.2
CPU-Target: i386

Re: [Gelöst] Kaputtes Package (lazDaemon) - wie diagnostiziert man lpk's?

Beitrag von Sieben »

Trotzdem merkwürdig, wie dieser 'falsche' Sourcecode da auf seine Platte gekommen ist. Ich hatte hier vermutlich mal einen ähnlichen Effekt - wobei ich allerdings immer noch nicht genau weiß, ob es nun daran gelegen hat (Code, der nicht den compilierten FCL-Sourcen entsprach) oder ob es doch etwas mit der Vererbung von 'stored False' zu tun hatte.

wp_xyz
Beiträge: 5156
Registriert: Fr 8. Apr 2011, 09:01

Re: [Gelöst] Kaputtes Package (lazDaemon) - wie diagnostiziert man lpk's?

Beitrag von wp_xyz »

Hab mir jetzt gerade nochmal den RC2 installiert - nein, die Sourcen im TDataModule sind in Ordnung, da steht OnCreate und OnDestroy - das Gegenteil hätte mich schon sehr gewundert. Ich vermute, das Problem sitzt vor der Tastatur. Nach zu vielen Stunden vor dem Computer, ein unbedarftes Suchen und alles ersetzen im falschen Fenster oder so, und schon ist es passiert.

Antworten