Hallo,
bei der Spurensuche einer SIGSEGV habe ich sehr schöne Aufrufstack-Listen erhalten. Was schätzt ihr, wieviele Funktionen in der RTL/FCL/LCL und externen Bibliotheken (bei GTK2) bis zum OnClick-Event-Handler eines TBitBtn beteiligt sind? Gemeint ist der direkte Weg und nichts was mit Erstellung usw. zu tun hat.
Jetzt ratet mal schön
Aufrufstack zum Click-Event
-
- 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:
Aufrufstack zum Click-Event
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Lazarusforum e. V.
- Beiträge: 7178
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: Aufrufstack zum Click-Event
Mal überlegen:
Es wird eine Primäre Botschafsschleife geben. Dort wird ein "MouseDown" abgefangen. Jetzt könnte es an den Application-Objekt weiter geleitet werden wobei das wiederum es an der Aktiven Komponente weiter leitet.
Also müsste es drei Orte geben. Ich nehme aber an, es gibt weit aus mehr...
Es wird eine Primäre Botschafsschleife geben. Dort wird ein "MouseDown" abgefangen. Jetzt könnte es an den Application-Objekt weiter geleitet werden wobei das wiederum es an der Aktiven Komponente weiter leitet.
Also müsste es drei Orte geben. Ich nehme aber an, es gibt weit aus mehr...
MFG
Michael Springwald
Michael Springwald
-
- 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: Aufrufstack zum Click-Event
pluto hat geschrieben:Also müsste es drei Orte geben. Ich nehme aber an, es gibt weit aus mehr...
Drei Orte: TApplication, WidgetSet, Controls (Form + Button) ... kommt hin. Du solltest nur beachten, dass TBitBtn = class(TCustomBitBtn) (oder so ähnlich)
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Lazarusforum e. V.
- Beiträge: 7178
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: Aufrufstack zum Click-Event
Gut, wenn das Click-Event auch noch genutzt wird, gibt es noch einen Vierten Ort.... Also habe ich ins Schwarze getroffen *freu*.
MFG
Michael Springwald
Michael Springwald
-
- 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: Aufrufstack zum Click-Event
Mit drei Orten kann man aber nur ganz grob einteilen zu welchem Programmteil die Funktionen gehören. Die Anzahl der beteiligten (aufgerufenen) Funktionen sind weitaus höher.
Ursprünglich hatte ich daran gedacht, der gesamte Call-Stack wäre beteiligt, aber die Hauptprogrammschleife kann man mehr oder weniger herausnehmen. Zumindest für GTK2 gilt, dass die LCL-Programmschleife nur ein Hook ist und die eigentliche Schleife durch die Bibliothek des WidgetSets ausgeführt wird (libgtk2). Demnach wäre nicht bei main anzufangen sondern erst bei GtkWSButton.Clicked (d.h. der Callback, der durch das WS aufgerufen wird).
Ursprünglich hatte ich daran gedacht, der gesamte Call-Stack wäre beteiligt, aber die Hauptprogrammschleife kann man mehr oder weniger herausnehmen. Zumindest für GTK2 gilt, dass die LCL-Programmschleife nur ein Hook ist und die eigentliche Schleife durch die Bibliothek des WidgetSets ausgeführt wird (libgtk2). Demnach wäre nicht bei main anzufangen sondern erst bei GtkWSButton.Clicked (d.h. der Callback, der durch das WS aufgerufen wird).
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein