Stelle von {$define xyz} finden?

Für Fragen rund um die Ide und zum Debugger
Antworten
Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1436
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Stelle von {$define xyz} finden?

Beitrag von fliegermichl »

Hallo,

ich portiere gerade ein Delphiprogramm nach Lazarus.
Dabei ist mir an verschiedenen Stellen aufgefallen, daß die CodeTools und der Compiler nicht so ganz übereinstimmen was die conditional defines angeht.

Kann ich irgendwie herausfinden, an welcher Stelle ein conditional define definiert wurde?

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

Re: Stelle von {$define xyz} finden?

Beitrag von theo »

Verstehe die Frage nicht ganz.
Ich würde es wahrscheinlich mit "Suchen" oder "in Dateien suchen" probieren.
Auch der Code Explorer zeigt es ja an.
Also was meinst du genau?
Dateianhänge
define_lazide.png
define_lazide.png (17.45 KiB) 5352 mal betrachtet

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1436
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Stelle von {$define xyz} finden?

Beitrag von fliegermichl »

Ja, der zeigt an {$ifdef xyz} und das wurde auch definiert weil der Code wird nicht grau dargestellt.
Was ich nicht finden kann, ist die Stelle wo das definiert wurde also das {$define xyz}

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

Re: Stelle von {$define xyz} finden?

Beitrag von theo »

Ich verstehe dich immer noch nicht.
Wenn ich im Code Explorer darauf doppelklicke, springt er bei mir an die Stelle wo es definiert ist.
Lazarus 2.3.0 (rev main-2_3-2827-g64b27f1207) FPC 3.3.1 x86_64-linux-gtk2
Dateianhänge
define_lazide2.png
define_lazide2.png (47.43 KiB) 5303 mal betrachtet

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: Stelle von {$define xyz} finden?

Beitrag von Socke »

Der Compiler kann dir das auch sagen: Projektoptionen > Compiler Options > Verbosity > Show conditionals (-vc)
Damit siehtst du sowohl DEFINES im Code als auch in Konfigurationsdateien oder Kommandozeilenparameter.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1436
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Stelle von {$define xyz} finden?

Beitrag von fliegermichl »

Socke hat geschrieben:
Mi 28. Jun 2023, 21:57
Der Compiler kann dir das auch sagen: Projektoptionen > Compiler Options > Verbosity > Show conditionals (-vc)
Damit siehtst du sowohl DEFINES im Code als auch in Konfigurationsdateien oder Kommandozeilenparameter.
Danke, damit kann ich schonmal sehen, daß er anzeigt Macro defined CONSOLE, Obwohl ich unter Konfiguration und Ziele die Option "Win32-GUI-Anwendung" aktiviert hab. Ich würde gerne wissen, an welcher Stelle Console definiert wird.
Ich suche weiter.

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: Stelle von {$define xyz} finden?

Beitrag von Socke »

Wenn es in einer Datei steht, gibt der Compiler auch die Fundstelle an. Ansonsten gilt wohl: Kommandozeilenparameter werden vor der Konfigurationsdatei aufgelistet.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

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

Re: Stelle von {$define xyz} finden?

Beitrag von theo »

Socke hat geschrieben:
Do 29. Jun 2023, 17:10
Wenn es in einer Datei steht, gibt der Compiler auch die Fundstelle an. Ansonsten gilt wohl: Kommandozeilenparameter werden vor der Konfigurationsdatei aufgelistet.
Das sehe ich auch so.

Ausserdem habe ich den Verdacht, dass die mit "Show conditionals (-vc)" ausgegebenen Werte z.T. auch einfach Compiler Defaults sind, die so in keiner Datei und in keinem Parameter stehen.
Sicher bin ich mir aber nicht. Vielleicht kann PascalDragon etwas dazu sagen.

Leider verstehe ich noch immer nicht genau, worum es fliegermichl eigentlich geht.

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: Stelle von {$define xyz} finden?

Beitrag von Socke »

theo hat geschrieben:
Do 29. Jun 2023, 17:25
Ausserdem habe ich den Verdacht, dass die mit "Show conditionals (-vc)" ausgegebenen Werte z.T. auch einfach Compiler Defaults sind, die so in keiner Datei und in keinem Parameter stehen.
Auch die werden ausgegeben. Durch eine Konfigurationsdatei kannst du aus einem x64-Compiler keinen x23-Compiler machen - aber auch die dazugehörigen Makros werden ausgegeben.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1436
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Stelle von {$define xyz} finden?

Beitrag von fliegermichl »

theo hat geschrieben:
Do 29. Jun 2023, 17:25
...
Leider verstehe ich noch immer nicht genau, worum es fliegermichl eigentlich geht.
In der Liste erscheint CONSOLE und ich hab keine Ahnung, wo das herkommt. Das ist eigentlich alles.

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: Stelle von {$define xyz} finden?

Beitrag von Socke »

Du könntest auch einfach nach CONSOLE in allen Dateien im Projektverzeichnis suchen.

In diesem Fall könnte das auch über {$apptype console} implizit gesetzt werden. Gab es da nicht auch einen Kommandozeilenparameter zu?
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1436
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Stelle von {$define xyz} finden?

Beitrag von fliegermichl »

Socke hat geschrieben:
Fr 30. Jun 2023, 18:47
Du könntest auch einfach nach CONSOLE in allen Dateien im Projektverzeichnis suchen.

In diesem Fall könnte das auch über {$apptype console} implizit gesetzt werden. Gab es da nicht auch einen Kommandozeilenparameter zu?
Hab ich gemacht, gab aber keine Treffer.
Ich hab jetzt eine Datei dcdefines.inc erstellt und da explizit {$undef console} reingeschrieben und diese Datei am Anfang einer jeden unit eingebunden.
Würde mich aber dennoch interessieren wo das herkommt.

Antworten