[SOS] Re: Problèmes avec émulateur VmWare.

David Decotigny david.decotigny at free.fr
Ven 5 Aou 15:41:17 CEST 2005


Bonjour,

C'est les joies du debuggage. Si ca peut te rassurer, on s'amuse aussi
avec ce genre de joyeusetes, tu n'as pas le privilege exclusif de ce
genre de jeu.

A toi de rajouter des printf dans bochs pour situer l'erreur dans ton
noyau. Au moins connaitre l'EIP, ca aide pour reperer l'endroit ou ca a
plante dans ton code. Puis apres utilise le debugger integre de bochs,
rajoute des breakpoints la ou ca plante, fais des dumps du tableau de
pages, remonte la chaine d'appels (backtrace a la main), etc. Le plus
simple c'est souvent le plus efficace et le moins intrusif (printf dans
bochs, ou port e9 dans ton noyau). N'abusez pas de tout ça quand meme,
apres vous n'aurez meme plus l'impression de faire du developpement de
noyau tellement ces conditions de travail sont luxueuses... ;)

Un allocateur de RAM n'est pas magique, ce n'est ni le compilo ni le
processeur qui rajoutent des bugs rien que pour vous embeter : si bug il
y a c'est soit vous, soit l'emulateur. Dans les 2 cas, la technique pour
remonter au probleme est la meme (cf supra), et, souvent, c'est vous le
coupable. En x années de kos, on n'a rencontre que 2 bugs dans bochs et
c'etait il y a longtemps maintenant. Je ne parle meme pas de gcc, en
general c'etait des problemes d'assembleur inline mal ecrit par nous.

Le fait que le comportement paraisse different d'un emulateur a l'autre
peut avoir plein d'origines. Par exemple, la RAM est peut-etre pas
initialisee de la meme maniere sous bochs et qemu au "boot" de
l'emulateur. Ou alors le BIOS n'est pas le meme et n'ecrit pas la meme
chose aux memes endroits, d'ou des comportements differents de ton
noyau. Dans ton cas par exemple, tu te retrouves avec un selecteur de
segment qui vaut portnawak, c'est peut-etre parce que ton code a ete
ecrase par des donnees suite a une decision foireuse liee a un contenu
de la RAM indetermine (p.ex 0 sur machine reelle au boot, 64576575 dans
qemu).

Pour finir, desole pour le mail de 2Megs de tout a l'heure, je l'avais
aprouve un peu trop rapidement, a l'aveugle.

Bonne journee,

-- 
David Decotigny -- http://david.decotigny.free.fr


Plus d'informations sur la liste de diffusion Sos