Aufrufstack zum Click-Event

Für sonstige Unterhaltungen, welche nicht direkt mit Lazarus zu tun haben
Antworten
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:

Aufrufstack zum Click-Event

Beitrag von Socke »

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 8)
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

pluto
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

Beitrag von pluto »

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...
MFG
Michael Springwald

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: Aufrufstack zum Click-Event

Beitrag von Socke »

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) :P
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

pluto
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

Beitrag von pluto »

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

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: Aufrufstack zum Click-Event

Beitrag von Socke »

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).
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Antworten