[SOS] Problème de faute triple
Julien Pichon
glandoillator at hotmail.com
Jeu 29 Mai 10:08:38 CEST 2008
Bonsoir à tous, Je suis arrivé jusqu'à l'article 4 qui traite de la mise en place de la pagination,et je m'adresse à vous car j'ai un problème à l'exécution. Bochs dans ses logs me renvoit cecitout en rebootant en boucle la machine virtuelle: /**************************************************/Message in a bochs00016359077e[CPU0 ] interrupt(): not accessable or not code segment cs=0x000800016359077e[CPU0 ] interrupt(): not accessable or not code segment cs=0x000800016359077i[CPU0 ] CPU is in protected mode (active)00016359077i[CPU0 ] CS.d_b = 32 bit00016359077i[CPU0 ] SS.d_b = 32 bit00016359077i[CPU0 ] EFER = 0x0000000000016359077i[CPU0 ] | RAX=0000000000000000 RBX=000000000002d8e400016359077i[CPU0 ] | RCX=0000000000000001 RDX=000000000000000200016359077i[CPU0 ] | RSP=00000000002044ce RBP=000000000020450400016359077i[CPU0 ] | RSI=000000000005453a RDI=000000000005453b00016359077i[CPU0 ] | R8=0000000000000000 R9=000000000000000000016359077i[CPU0 ] | R10=0000000000000000 R11=000000000000000000016359077i[CPU0 ] | R12=0000000000000000 R13=000000000000000000016359077i[CPU0 ] | R14=0000000000000000 R15=000000000000000000016359077i[CPU0 ] | IOPL=0 id vip vif ac vm RF nt of df if tf sf zf af pf cf00016359077i[CPU0 ] | SEG selector base limit G D00016359077i[CPU0 ] | SEG sltr(index|ti|rpl) base limit G D00016359077i[CPU0 ] | CS:0008( 0001| 0| 0) 00000000 000fffff 1 100016359077i[CPU0 ] | DS:0010( 0002| 0| 0) 00000000 000fffff 1 100016359077i[CPU0 ] | SS:0010( 0002| 0| 0) 00000000 000fffff 1 100016359077i[CPU0 ] | ES:0010( 0002| 0| 0) 00000000 000fffff 1 100016359077i[CPU0 ] | FS:0010( 0002| 0| 0) 00000000 000fffff 1 100016359077i[CPU0 ] | GS:0010( 0002| 0| 0) 00000000 000fffff 1 100016359077i[CPU0 ] | MSR_FS_BASE:000000000000000000016359077i[CPU0 ] | MSR_GS_BASE:000000000000000000016359077i[CPU0 ] | RIP=0000000000202337 (0000000000202337)00016359077i[CPU0 ] | CR0=0x80010011 CR1=0x0 CR2=0x000000000000000000016359077i[CPU0 ] | CR3=0x01fef000 CR4=0x0000000000016359077i[CPU0 ] >> add byte ptr ds:[eax], al : 000000016359077e[CPU0 ] exception(): 3rd (13) exception with no resolution, shutdown status is 00h, resetting00016359077i[SYS ] bx_pc_system_c::Reset(SOFTWARE) called00016359077i[CPU0 ] cpu software reset/***************************************************/ Ce qu'il faut savoir c'est que j'ai réécris les fichiers exception_wrappers.S etirq_wrappers.S [ainsi que boot.S (mais je pense qu'il n'a pas d'incidence ici)]pour qu'ils puissent être compilés avec nasm. Sinon après avoir expérimenté un peu les choses, l'erreur provient je pense de cette portionde code suivante qui se situe dans sos/main.c dans la fonction test_paging: sos_paging_map(ppage_new, vpage_code, FALSE, SOS_VM_MAP_ATOMIC | SOS_VM_MAP_PROT_READ | SOS_VM_MAP_PROT_WRITE); en essayant de changer les paramètres envoyés à cette fonction je me suis aperçu que c'est le mapping de lapage de code actuelle (vpage_code) qui doit déclencher une faute, qui en redéclenche une autrejusqu'à avoir une faute triple. Et d'après le numéro la ligne de log"00016359077e[CPU0 ] exception(): 3rd (13) exception with no resolution, shutdown status is 00h, resetting"je pense que l'erreur viendrait d'un #GP (general protection). Par contre je n'en sais pas plus et j'avoue être un peu perdu, si des personnes voient d'où l'erreur peutprovenir, ou il faut que je reagarde, je veux bien de l'aide. D'avance merci.
_________________________________________________________________
Caroline vient de mettre à jour son profil Messenger ! Connectez-vous !
http://login.live.com/login.srf?wa=wsignin1.0&rpsnv=10&ct=1198837564&rver=4.0.1534.0&wp=MBI&wreply=http:%2F%2Fhome.services.spaces.live.com%2F&lc=1036&id=73625
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: http://the-doors.enix.org/pipermail/sos/attachments/20080529/180afac7/attachment.html
Plus d'informations sur la liste de diffusion Sos