Lazarus64 / Linux RunError(216)

Antworten
MmVisual
Beiträge: 1582
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
CPU-Target: 32/64Bit

Lazarus64 / Linux RunError(216)

Beitrag von MmVisual »

Hallo,

Ich habe heute in einer VirtualBox Suse 11 64 Bit installiert und darin FPC2.6.0 + Source + Lazarus (64 Bit) und Zeos, aktuelles SVN und wollte damit mein EleLa kompilieren.

Kompiliren geht ohne Fehler. Aber beim Start kommen Fehler. :(

Die Beschreibung:
Es wird eine Verbindung zur SQLite Datenbank hergestellt, ein paar Tabelle öffnen auch schon.
Nun öffnet die Tabelle "Bauteile" (TZQuery), die verbundene TDatasource.OnChange öffnet wiederum die Tabelle die verbundenen Tabellen (TZQuery).
Dann kommen die Fehler und die Daten werden nicht gezeigt.
Bild1.png
Bild1.png (16.61 KiB) 1411 mal betrachtet
Bild2.png
Wenn ich vor dem BauteilQuery.Open beim BauteilDatasource.Dataset := Nil setze, dann gibt es keinen Fehler.

Alleine schon die verbundene Datasource (und damit alle Steuerelemente wie TDBEdit usw.) macht das Problem. egal wo ich Breakpoints setze, in meinem Code ist alles OK. :?:

Der gleiche Code läuft kompiliert unter Windows mit Lazarus 32 Bit und Lazarus 64 Bit.

Ich vermute das liegt nicht an der neuen Zeos Komponente, aber da die Exception irgendwo auftritt wo ich nicht hin debuggen kann weiß ich es nicht mit 100% Sicherheit.

Die Version:
Bild3.png
Sorry, dass ich das Problem nicht detaillierter beschreiben kann, auch ist es fast unmöglich eine Demo mit dem Bug zu erstellen, mein Code ist ziemlich dick.
Ich hoffe Ihr könnt helfen, Tipps geben dass ich es näher eingrenzen kann.

Grüße Markus
EleLa - Elektronik Lagerverwaltung - www.elela.de

MmVisual
Beiträge: 1582
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: Lazarus64 / Linux RunError(216)

Beitrag von MmVisual »

Ich habe was rausgefunden, wenn ich in dem TDBGrid die Datasource weg nehme, dann geht es.
Im OnSelectEditor kommt der Fehler.
EleLa - Elektronik Lagerverwaltung - www.elela.de

MmVisual
Beiträge: 1582
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: Lazarus64 / Linux RunError(216)

Beitrag von MmVisual »

Ich habe raus gefunden, was da nicht geht:

Im OnSelectEditor wird eine TComboBox erzeugt und mittels CopyObject() wird die vom Formular, der Eingabemaske, kopiert.

Der Tipp kam damals von theo, siehe hier:
http://www.lazarusforum.de/viewtopic.php?p=24606#p24606" onclick="window.open(this.href);return false;

nun versagt das ganze unter Linux 64 Bit.

Und zwar so:
CopyObject() ruft SetOrdProp() auf und da kann ich schon nicht mehr weiter debuggen :-(
SetOrdProp() ist in der FPC RTL Unit typinfo.

Die erste Property "Align" wird richtig kopiert.
Die zweite Property "AnchorSideBottom", damit hat er ein Problem. Auch der Wert mit -258830848 ist mehr als komisch.
Daher vermute ich, dass GetOrdProp() schon den falschen Wert liefert.

Kann mir jemand einen Tipp geben, wie ich weiter vorgehen soll?

Grüße Markus
EleLa - Elektronik Lagerverwaltung - www.elela.de

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Lazarus64 / Linux RunError(216)

Beitrag von mse »

Um in der RTL zu debuggen, kompiliere sie mit debug Info, z.B. so:

Code: Alles auswählen

#!/bin/sh
fpcdir=/home/mse/packs/standard/svn/fp/fixes_2_6
cd ${fpcdir}/rtl
make clean
cd ${fpcdir}/packages
make clean
cd ${fpcdir}
make OPT="-gl -O-" FPC=${fpcdir}/compiler/ppc386 rtl packages
Selbstverständlich musst du Pfade und Compiler anpassen.

Martin

MmVisual
Beiträge: 1582
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: Lazarus64 / Linux RunError(216)

Beitrag von MmVisual »

Ich habe gerade ein Bugreport geschrieben
http://bugs.freepascal.org/view.php?id=21802" onclick="window.open(this.href);return false;
EleLa - Elektronik Lagerverwaltung - www.elela.de

Antworten