Problem mit Projekt nach update auf Lazarus 2.2.2

Für Fragen rund um die Ide und zum Debugger
Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Problem mit Projekt nach update auf Lazarus 2.2.2

Beitrag von photor »

Hallo Forum,

gerade hat es mich hier kalt erwischt:

ich habe ein Projekt geöffnet, ein bisschen im Form-Designer an der GUI "geschoben und GUI-Elemente anders gruppiert und beim compilieren fehlen plötzlich die Definitionen einiger TEdits und einer TComboBox (wahrscheinlich die, die ich mit Ctrl-X und Ctrl-V woanders wieder eingesetzt habe).

Es scheint auch zu sein, dass die Unit Grid unter uses nicht gefunden wird. Kommentiere ich die aus, steht mir allerdings das TStringGrid nicht zur Verfügung.

Ich habe die fehlenden Definitionen von Hand wieder eingefügt, so dass sich das Projekt compilieren ließ.

Aber jetzt lässt sich das entstandene Programm nicht starten; ich erhalte sofort(!) eine Exception. Hier mal die Ausgabe, wenn ich das Programm direkt in der Shell starte:

Code: Alles auswählen

[FORMS.PP] ExceptionOccurred 
  Sender=EReadError
  Exception=Error reading SelProjDirBtn.OnClick: Invalid value for property
  Stack trace:
  $00000000004FD2E9
  $00000000004FC579
  $00000000004FC634
  $00000000004FC634
  $0000000000481096
[DEBUG] Name com.canonical.AppMenu.Registrar does not exist on the session bus
Das bleibt auch so, wenn ich mit "Aufräumen und compilieren" das Projekt quasi frisch compiliere, also keine alten Zwischen-Files mehr rumliegen.

Vielleicht noch wichtig: zum Debuggen hatte ich Heap Trace aktiviert.

Im Moment habe ich keine Ahnung, wo ich suchen soll.

Was ist seit dem letzten Arbeiten an dem Projekt passiert? Mir fällt nur das Update auf Lazarus 2.2.2 ein. Das passierte (natürlich) mit dem ArchLinux-eigenen Package-Tool.

Hat jemand einen Tipp, was passiert sein könnte und wo ich anfange zu suchen? Habe ich (oder die ArchLinuxer beim Erstellen des Pakets) irgendetwas beim Update vergessen

Ratlos,
Photor

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

Re: Problem mit Projekt nach update auf Lazarus 2.2.2

Beitrag von wp_xyz »

photor hat geschrieben:
Fr 8. Jul 2022, 18:14
Es scheint auch zu sein, dass die Unit Grid unter uses nicht gefunden wird.
Die gibt es auch nicht. Sie heißt Grids (Plural).

Von welcher Version aus hast du denn upgegradet?

Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Re: Problem mit Projekt nach update auf Lazarus 2.2.2

Beitrag von photor »

wp_xyz hat geschrieben:
Fr 8. Jul 2022, 18:34
Die gibt es auch nicht. Sie heißt Grids (Plural).
Sorry, war ein Tippfehler hier; im uses steht der Plural.

wp_xyz hat geschrieben:
Fr 8. Jul 2022, 18:34
Von welcher Version aus hast du denn upgegradet?
Update von Version (2.0.12 auf) 2.2.0 auf 2.2.2. Das sind die Versionen, die ArchLinux jeweils anbietet (die Distributions-eigenen Zwischenschritte habe ich jetzt mal weggelassen). Und eigentlich gab es bisher keine größeren Probleme.

Ich übersetze Lazarus immer zunächst, um das Docked-Design zu erhalten - vielleicht hilft diese Info ja beim Fehlersuchen.

Ciao,
Photor

PS: Da hier bisher außer mir keiner Probleme hat, gehe ich davon aus, dass es ein lokaler Fehler hier ist.

PS2: beim Antworten vom Pad ist wohl eben was schief gelaufen; an den Admin: dieses Nachrichten-Fragment von mir kann gelöscht werden.

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

Re: Problem mit Projekt nach update auf Lazarus 2.2.2

Beitrag von wp_xyz »

Ist es denn nur dieses Projekt, das Probleme macht? Wenn du das Leerformular beim Lazarus-Start nimmst, ein paar Controls draufklickst und dann übersetzt, läuft das?

Verwendet das problematische Projekt Zusatzkomponenten? Wenn du Lazarus upgradest, werden diese nicht notwendigerweise installiert. Prüfen, ob diese installiert sind, ggfs nachinstallieren und testen.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6209
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: Problem mit Projekt nach update auf Lazarus 2.2.2

Beitrag von af0815 »

Bei so unklaren Problemen, mache ich ein dfiff der Dateien und schau nach ob sich viel geändert hat.

Aktuell habe ich ein Problem von Lazarus 2.3.0 auf 2.0.x downgegraded ohne Probleme und auch nochmals auf 2.2.x hochgezogen. Abgesehen das es ein paar properties sich geändert haben, geht das bei win64 (Prg ist win32+Arm-Linux) ohne Probleme.

Code: Alles auswählen

  Exception=Error reading SelProjDirBtn.OnClick: Invalid value for property
Da hat der lfm-Reader Probleme bekommen. ALs ersters würde ich mir mal die LFM Datei mit einem Texteditor ansehen und die Stelle raussuchen. Entweder ist das die pas zur lfm unsynchron geworden oder beschädigt.

Bei mir sind immer alle Sourcen im GIT, daher kann ich da sehr genau verfolgen was passiert ist. Ok maximal ist der letzte halbe Tag weg.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Re: Problem mit Projekt nach update auf Lazarus 2.2.2

Beitrag von photor »

Hallo wp_xyz,

Fremdkomponenten verwende ich nicht (und meide sie genau aus diesem Grund).

Gerade mal ein neues Projekt erzeugt:
  • einfach einen Button erzeugt, eine Checkbox (weil die unter anderem auch einen Fehler in meinem Projekt erzeugt hatte) und ein ominöses TStringGrid.
  • dann ein Doppelklick auf den Button (sollte ein Close- oder Quit-Button werden)
  • es popt eine Messaage-Box auf:

    Code: Alles auswählen

    "Kann neue Methode nicht erzeugen Please fix the error shown 
    in the message window which is normally below the source editor.
    
    Press OK to ignore and risk data corruption.
    Press Abort to kill the program."


Ich fürchte, das ist was fundamental kaputt!

Ich glaube, ich werde morgen mal Lazarus und FPC deinstallieren und mal alles, was irgendwie nach Überbleibsel aussieht, entferne, um sicher zu sein, dass nichts mehr von einer alten Installation übrig ist (das sollte eigentlich nicht passieren - darum mache ich das ja über den Arch-Package-Manager).

Ciao,
Photor

Nachtrag: Klick auf "Abort" reißt die IDE mit "Access violation" in die Tiefe.

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

Re: Problem mit Projekt nach update auf Lazarus 2.2.2

Beitrag von wp_xyz »

photor hat geschrieben:
Fr 8. Jul 2022, 20:05
[*] es popt eine Messaage-Box auf:

Code: Alles auswählen

"Kann neue Methode nicht erzeugen Please fix the error shown 
in the message window which is normally below the source editor.

Press OK to ignore and risk data corruption.
Press Abort to kill the program."
Ich denke, das kommt bei mir immer vor, wenn ich Code eintippe und während des Schreibens, wenn der Code noch nicht sauber abgeschlossenen ist (z.B. fehlendes "finally" und "end" nach schon vorhandenem "try") die Idee habe, etwas mit dem Objektinspektor zu machen (Komponente umbenennen, neue Komponente einfügen, o.ä.). Das hat nichts mit Laz 2.2.2 zu tun.

Bist du sicher, dass du nur das Grid aufs Formular geklickt hast, und nicht irgendwo Code geschrieben wurde?

Bevor du Lazarus neu installierst, solltest du dein Profil-Verzeichnis löschen (oder umbenennen), so dass beim nächsten Laz-Start alle Einstellungen mit Default-Werten neu eingerichtet werden. Schaue unter "Ansicht" > "IDE-Interna" > "Über die IDE" beim Eintrag "Primary Config Directory" nach, wo sich das Profil-Verzeichnis befindet (normalerweise ~/.lazarus).

Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Re: Problem mit Projekt nach update auf Lazarus 2.2.2

Beitrag von photor »

wp_xyz hat geschrieben:
Fr 8. Jul 2022, 22:13
photor hat geschrieben:
Fr 8. Jul 2022, 20:05
[*] es popt eine Messaage-Box auf:

Code: Alles auswählen

"Kann neue Methode nicht erzeugen Please fix the error shown 
in the message window which is normally below the source editor.

Press OK to ignore and risk data corruption.
Press Abort to kill the program."
Ich denke, das kommt bei mir immer vor, wenn ich Code eintippe und während des Schreibens, wenn der Code noch nicht sauber abgeschlossenen ist (z.B. fehlendes "finally" und "end" nach schon vorhandenem "try") die Idee habe, etwas mit dem Objektinspektor zu machen (Komponente umbenennen, neue Komponente einfügen, o.ä.). Das hat nichts mit Laz 2.2.2 zu tun.

Bist du sicher, dass du nur das Grid aufs Formular geklickt hast, und nicht irgendwo Code geschrieben wurde?
Ja. Wirklich nur die 3 Komponenten wild auf Form geklickt, nichts weiter geänder und unmittelbar „compile“ geklickt. Der Cursor bleibt beim aller ersten Zeichen der Unit stehen und die Message erscheint. Da steht also nicht viel mehr, als die Definition in der .pas; kein sonstiger Code.
wp_xyz hat geschrieben:
Fr 8. Jul 2022, 22:13
Bevor du Lazarus neu installierst, solltest du dein Profil-Verzeichnis löschen (oder umbenennen), so dass beim nächsten Laz-Start alle Einstellungen mit Default-Werten neu eingerichtet werden. Schaue unter "Ansicht" > "IDE-Interna" > "Über die IDE" beim Eintrag "Primary Config Directory" nach, wo sich das Profil-Verzeichnis befindet (normalerweise ~/.lazarus).
Das kann ich vorher ja noch probieren.

Ciao,
Photor

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

Re: Problem mit Projekt nach update auf Lazarus 2.2.2

Beitrag von Nimral »

Ich würde auf das Selbe tippen wie wp. Der Forumlareditor versucht, den Code für den Button in Deine Source zu setzen und scheitert dabei. Mehr ist erst einmal nicht bekannt.

Häufigste Ursache ist ein Syntaxfehler in der Source. Als schnellen Check könntest Du versuchen, den Jedi Code Formatter laufen zu lassen (Strg-D). Der ist sowieso ziemlich nützlich, und scheitert ebenfalls, wenn der Code syntaktisch nicht korrekt ist.

Weiters hatte ich mal einen Haufen seltsame Probleme mit dem Formulareditor und mit angeblich nicht vorhandenen Libraries als ich ein Projekt von Windows nach Linux umgezogen habe: in Linux ist alles Case-Sensitive, in Windows nicht. Ich meine mich zu erinnern, dass die Namen eingebundener Libraries sowie der .lfm Datei (die zu jedem Formular gehört - ist eine Textdatei, ein Blick da rein könnte sich auch lohnen!) sich in Klein/Großschreibung unterschieden haben. Unter Windows hat das nicht gestört, unter Linux schon. Auch die Schreibrechte auf die .lfm und .res Dateien zu prüfen wäre ein Ansatz.

Bei so unklaren allgemeinen Meldungen wo man offensichtlich selber nichts falsch macht also auf Kleinigkeiten achten. Es gehört zu den Flüchen strukturierter Fehler(nicht)Behandlung dass tiefe Fehler, die "eigentlich" nicht vorkommen sollten, am Ende dann in irreführenden Fehlermeldungen enden. Ich war hin und wieder schon so verzweifelt dass ich ein neues Projekt begonnen habe und dann Sourceblock um Sourceblock und Sourcefile um Sourcefile kopiert und wieder ins Projekt eingebunden habe.

Projekt komplett neu bauen (Build all), alle Fehlermeldungen im Nachrichtenfenster anzeigen lassen, und dann - so viele es auch sind - durchackern, auch die Warnungen hilft hin und wieder ebenfalls, dem Problem auf die Spur zu kommen.

Extrem nützlich ist in solchen Fällen auch, alle Projekte konsequent unter Source-Verwaltung zu stellen, ich habe dazu immer noch meinen alten Subversion Server im Keller laufen. Damit kann man hinterher, wenn man das Problem mehr oder weniger durch probieren gelöst hat, über einen Diff oft herausfinden, was sich genau geändert hat. So kann man wenigstens was lernen aus dem Problem.

Armin.

Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Re: Problem mit Projekt nach update auf Lazarus 2.2.2

Beitrag von photor »

Moin,

Kurzer Zwischenstand:

Nachdem gestern ja nicht einmal ein vollständig neues Projekt compilieren wollte, habe ich das .lazarus-Verzeichnis beiseite geschoben und die IDE blanko gestartet (da jetzt nichts mehr configuriert ist, erhalte ich das Einzelfenster-Design).

Damit das gleiche Spiel: neues Projekt angelegt, einen TButton, eine TCheckBox und ein TStringGrid auf‘s Form gepackt, keinen zusätzlichen Code, und dann compiliert. Das lässt sich starten und tut, was es soll. :)

Also ist klar, dass das Problem wohl im .lazarus-Verzeichnis zu suchen ist. Ich werde mich jetzt schrittweise wieder meinem Lieblings-Design und dem Projekt nähern.

Ciao,
Photor

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

Re: Problem mit Projekt nach update auf Lazarus 2.2.2

Beitrag von Nimral »

Um dem naheliegendsten Verdacht zuvor zu kommen: ich habe jetzt seit fast 3 Jahren pausenlos AnchorDocking in allen Lazarus Versionen sowohl unter WIndows als auch unter Linux eingebunden, und ich hatte zwar hin und wieder den Verdacht dass es was kaputt macht, ich konnte das aber keine einziges Mal beweisen, und nach dem Neuaufbau eines "kaputten" Projekts ging es stets auch mit AnchorDocking.

Armin.

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

Re: Problem mit Projekt nach update auf Lazarus 2.2.2

Beitrag von wp_xyz »

War der "SpartaDockedFormEditor" installiert? Der macht Probleme und wird auch nicht mehr unterstützt. Verwende stattdessen Michls "DockedFormEditor".

Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Re: Problem mit Projekt nach update auf Lazarus 2.2.2

Beitrag von photor »

Moin,

Um ehrlich zu sein, ich weiß nicht mehr ob es der Sparta…. war - ich glaube nicht (ich hatte schon mal gehört, dass der Probleme macht). Jetzt habe ich den DockedFormEditor installiert.

Ich hatte den aber (noch nicht) im Verdacht. Aber außer, dass ich das Minimal-Test-Projektchen auch in der Docked-IDE (erfolgreich) probiert habe, bin ich noch nicht weiter gekommen (das Wetter war zu gut).

Mein Fahrplan sieht so aus, dass ich jetzt alles so einrichten werde, wie es mir pass (immer wieder testen, ob es zickt) und dann zu meinem Problem-Projekt über gehe.

Ciao,
Photor

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6209
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: Problem mit Projekt nach update auf Lazarus 2.2.2

Beitrag von af0815 »

Die Docked Designs kann man exportieren und sogar im GIT ablegen. Dazu kann ich nur empfehlen das automatische Speichern des Desktops zu deaktivieren und stattdessen das manuell zu machen.

Damit habe ich einen absolut stabilen Desktop und wenn ich mir mal das Layout zerschiesse oder Lazaus nach wilden Kopier und Löschsessions Probleme bekommt, reicht ein Neustart und das Layout ist wieder Ok.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Re: Problem mit Projekt nach update auf Lazarus 2.2.2

Beitrag von photor »

Hallo,

ich mach mal eine Zwischenmeldung - auch damit das Thema eine Lösung(?) hat, wenn jemand sucht.

Es sieht so aus, dass ich, nachdem ich das ~/.lazarus-Verzeichnis gelöscht habe, Lazarus natürlich neu konfigurieren und (wg. DockedDesign), auch neu Übersetzen musste (was ich aber sowieso meistens mache, um Lazarus zu testen). Noch ist nicht alles wieder so bequem wie zuvor - aber egal.
  • Dann habe ich mich "heran getastet". D.h. erst ein frisches Projekt und Formular mit ein paar Elementen compiliert und gestartet (selbst das hatte zuvor Probleme gemacht) - geht.
  • Den letzten definitiv funktionierenden Stand meines Projekts geladen; übersetzt; gestartet - geht
  • Jetzt (stückweise) die Änderung an der GUI mit Testlauf zwischendurch durchgezogen - geht
Fakt ist: frisch aufgesetzt (nicht installiert!) macht Lazarus, was es soll! Was genau beim Update passiert ist, kann ich nicht sagen. Es sieht für mich so aus, als wäre dabei im ~/.lazarus-Verzeichnis irgend etwas übrig geblieben, was Ärger machte. Für mich heißt das, beim nächsten Update, diese Verzeichnis direkt löschen/verschieben und frisch starten.

Bis hierher vielen Dank für Eure Hilfe.

Ciao,
Photor

Antworten