package reagiert nicht auf Quellcode...

Für Fragen rund um die Ide und zum Debugger
Antworten
arturx
Beiträge: 140
Registriert: Fr 21. Nov 2008, 11:29
OS, Lazarus, FPC: Winux (L 1.0.6.xy FPC 2.6.z)
CPU-Target: 32/64Bit

package reagiert nicht auf Quellcode...

Beitrag von arturx »

Das Lazdbf Package sollte genutzt werden und zeigte via Heaptrc Aufräumprobleme aufgrund der Indexnutzung.
Daraufhin wollte ich DBF.pas debuggen um die Ursache zu suchen.
 
Das DBFLaz package zeigt als Dateien brav registerdbf.pas und dbf.pas an.
Register.dbf liegt in Laz..\components unter tdbf und dbf.pas in lazarus\fpc\3.0.0\source\packages\fcl-db\src\dbase.
Wenn nun irgendetwas in dbf.pas eingetragen wird, hat das keinerlei Einfluss auf das Compilieren des Packages.
Ein Löschen von dbf.ppu in laz..\fpc\3.0.0.\units\i386-win32\fcldb wird mit einer Fehlermeldung quittiert und
dbf.ppu wird nicht erneut erstellt, obwohl das package die quelltextdatei "dbf.pas" offensichtlich kennt.
An welcher Einstellung eines/dieses package muss man "drehen", um dieses Verhalten zu beenden ?
(ich hoffe, dass aufgrund dieser Änderung dann auch das debuggen von dbf.pas möglich sein wird)

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: package reagiert nicht auf Quellcode...

Beitrag von Socke »

Das Package macht Units, die vom Compiler ausgeliefert werden, der Lazarus-IDE verfügbar.
Du hast folgende Möglichkeiten:
  1. Du änderst den Ausgabepfad des Packages; dann solltest du alle *.o und *.ppu Dateien aus dem unsprünglichen Verzeichnis löschen, damit keine doppelten Dateien vorhanden sind. Bei einem Update von Lazarus musst du das Package erneut anpassen.
  2. Du übersetzt den Teil des FPCs neu ("make packages"?); ggf. musst du dir den Quellcode von der FPC-Seite herunterladen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

arturx
Beiträge: 140
Registriert: Fr 21. Nov 2008, 11:29
OS, Lazarus, FPC: Winux (L 1.0.6.xy FPC 2.6.z)
CPU-Target: 32/64Bit

Re: package reagiert nicht auf Quellcode...

Beitrag von arturx »

Danke für die schnelle Antwort !
zu 1.: ich könnte den Ausgabepfad auf das der registerunit verweisen lassen;
aber davor scheue ich, weil ich immer versuche, die Originalstruktur mögl. beizubehalten.
(Ist aber als Plan B gut vorstellbar)
 
zu 2.: lässt sich "make packages" aus der IDE heraus ausrufen ?
Ich habs versucht via "Werkzeuge / fpc-quelltextverzeichnis neu einlesen",
aber da gibts leider keine Fehlermeldung obwohl ich einen Unsinnstext als Marker in die source.datei geschrieben habe

3.später soll ja dbf.pas beim debuggen berücksichtigt werden. Gibt es dafür eine Einstellung ?

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: package reagiert nicht auf Quellcode...

Beitrag von Socke »

arturx hat geschrieben:zu 2.: lässt sich "make packages" aus der IDE heraus ausrufen ?
Ich habs versucht via "Werkzeuge / fpc-quelltextverzeichnis neu einlesen",
aber da gibts leider keine Fehlermeldung obwohl ich einen Unsinnstext als Marker in die source.datei geschrieben habe

3.später soll ja dbf.pas beim debuggen berücksichtigt werden. Gibt es dafür eine Einstellung ?

Nein, der Befehl "make packages" wird auf der Kommandozeile im Quelltextverzeichnis des FPC aufgerufen. Details zum erstellen des Compilers findest du in der BuildFAQ
Am besten lädst du dir hierzu den Quelltext des Compilers separat herunter und stelltst später in den Lazarus-Optionen den zu verwendenden Compiler um.

Du kannst folgende Befehl verwenden um die Free Pascal Packages mit Debuginformationen neu zu erstellen. Dies wirkt sich nicht nur auf die eine Unit aus sondern auf alle Free Pascal Packages.

Code: Alles auswählen

make packages OPT="-gl"
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

arturx
Beiträge: 140
Registriert: Fr 21. Nov 2008, 11:29
OS, Lazarus, FPC: Winux (L 1.0.6.xy FPC 2.6.z)
CPU-Target: 32/64Bit

Re: package reagiert nicht auf Quellcode...

Beitrag von arturx »

Die o.a. Tips werde ich auf alle Fälle demnächst ausprobieren : Meine Neugier ist geweckt !
(Bis jetzt hatte ich mich nie um fpc und die Kommandozeile kümmern müssen, es ging so schön automatisch...)
 
Mein aktuelles quick and dirty workaround zum debuggen ist Folgendes :
 
1.copy die dbf_*.pas Dateien aus C:\lazarus\fpc\3.0.0\source\packages\fcl-db\src\dbase\ --> components\tdbf\
2.package tdbf neu compilieren (damit werden die o.a. dateien direkt genutzt)
3.debuggen
4.Wenn alles erledigt ist (drückt die Daumen dass ich den Fehler finde !) :
1.copy die geänderten dbf...ppu und dbf...o Files aus tdbf --> C:\lazarus\fpc\3.0.0\units\i386-win32\fcl-db\
2.entferne die geänderten source und bin files aus components\tdbf\
3.erstelle lazarus neu. (das kompiliert dann tdbf automatisch mit den fpc ppu / o Files)
4.teile die Änderungen dem Bugtracker mit.
--> Ich hoffe, dass der Bugtracker die richtige Stelle ist, da tdbf ja "discarded" ist.
wenn jemand ein besseres Ziel kennt, teilt es bitte mit !

Antworten