[SOS] Traitement d'un "stack overflow"

Cyril Dupuit cyrildupuit at hotmail.com
Sam 10 Juin 10:47:09 CEST 2006


Salut,
Comme convenu, j'ai placé les sources sur un site. Ces sources sont 
accessibles sur http://perso.orange.fr/koalys/downloads/dbf-sos-9_5.zip.

Ces sources sont celles de la version « sos-code-article9.5 » dont les 
modifications suivantes ont été apportées :

- main.c : Suppression du code non utilisé pour effectuer ce test 
(suppression du code d'initialisation des processus, suppression du code de 
gestion de la charge CPU, gestion des tty, etc...). Ajout de la fonction 
récursive Toto() dans le thread stat_thread().
- gdt.c : Ajout de la fonction sos_gdt_register_double_fault_tss() afin 
d'initialiser la TSS de double faute.
- idt.c : Modification de la fonction sos_idt_subsystem_setup() afin qu'elle 
initialise une task gate dans l'entrée 8 (double fault) de l'IDT.
- cpu_context.c : Modification de la fonction 
sos_cpu_context_subsystem_setup() afin qu'elle initialise la TSS de double 
fault.
- segment.h : Ajout du define SOS_SEG_DBL_FAULT_TSS utilisé pour initialiser 
le segment de double fault dans la TSS.

Le résultat obtenu est toujours le même. Il m'est impossible de tomber dans 
l'exception de double fault. Qému se bloque, bochs affiche un résultat 
erroné et un véritable PC reboot sans cesse (le fameux triple fault que tu 
m'as expliqué la dernière fois).

Je ne sais pas quoi te dire de plus si ce n'est que je n'arrive pas à 
comprendre ce qu'il se passe.

Merci encore.

Cyril




Plus d'informations sur la liste de diffusion Sos