Autor Thema: Stack Overflow.  (Gelesen 4795 mal)

WhiteDragon

  • Beiträge: 124
    • Profil anzeigen
Gespeichert
« am: 25. October 2005, 13:23 »
Also da der andere Thread vom Thema abgekommen ist, will ich für meine Frage mal ein neues auf machen:

Die meisten dürften inzwischen ihre Exception-Handler programmiert haben. Da ist ja auch einer für den "Stack overflow" dabei (Int 12, denke ich).

Meine Frage: Wenn der Stack voll ist, wie kann ich dann dafür sorgen, dass man nach dem Interrupt (und nach Vergrößerung des Stacks) wieder zurück kommt? Die Rücksprungadresse und die Flags haben ja keinen Platz mehr auf dem Stack...

[MM]

  • Beiträge: 130
    • Profil anzeigen
    • www.mmcoding.eu
Gespeichert
« Antwort #1 am: 25. October 2005, 15:36 »
Du könntest den Handler als Call- oder Task-Gate eintragen, damit die Parameter auf einem anderen Stack abgelegt werden, denn wenn sie auf den selben sollen wird glaub ich erst der Stack-Overflow, und dann ein Doppelfehler ausgelöst. Und wenn der Doppelfehler-Handler auch keinen eigenen Stack hat schmiert das ganze System ab. So ist es zumindest bei mir.

MM

Legend

  • Beiträge: 635
    • Profil anzeigen
    • http://os.joachimnock.de
Gespeichert
« Antwort #2 am: 25. October 2005, 17:30 »
Jop, wenn dir das mit dem Kernel-Stack passiert gibt das eigentlich eh einen Tripe Fault. Methoden das zu umgehen sind, wenn sie wirklich existieren wohl halt so aufwendig wie von [MM] beschrieben.

Die Exception ist wohl mehr für Ring 3 Stacks gedacht.
*post*

 

Einloggen