Aufrufstack zum Click-Event

Für sonstige Unterhaltungen, welche nicht direkt mit Lazarus zu tun haben

Aufrufstack zum Click-Event

Beitragvon Socke » 16. Mär 2010, 00:49 Aufrufstack zum Click-Event

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
Socke
 
Beiträge: 2552
Registriert: 22. Jul 2008, 18:27
Wohnort: Köln
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 8.1/Debian GNU/Linux/Raspbian/openSUSE | 
CPU-Target: 32bit x86 armhf
Nach oben

Beitragvon pluto » 16. Mär 2010, 14:28 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...
MFG
Michael Springwald
Aktuelles Projekt: PlutoArduino
pluto
 
Beiträge: 6702
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.3 | 
CPU-Target: AMD
Nach oben

Beitragvon Socke » 16. Mär 2010, 19:04 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) :P
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Socke
 
Beiträge: 2552
Registriert: 22. Jul 2008, 18:27
Wohnort: Köln
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 8.1/Debian GNU/Linux/Raspbian/openSUSE | 
CPU-Target: 32bit x86 armhf
Nach oben

Beitragvon pluto » 16. Mär 2010, 19:38 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
Aktuelles Projekt: PlutoArduino
pluto
 
Beiträge: 6702
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.3 | 
CPU-Target: AMD
Nach oben

Beitragvon Socke » 16. Mär 2010, 20:12 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).
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Socke
 
Beiträge: 2552
Registriert: 22. Jul 2008, 18:27
Wohnort: Köln
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 8.1/Debian GNU/Linux/Raspbian/openSUSE | 
CPU-Target: 32bit x86 armhf
Nach oben

• Themenende •

Zurück zu Dies und Das



Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 1 Gast

porpoises-institution
accuracy-worried