Closed MaximeCheramy closed 9 years ago
Visiblement, le DF dans EFLAG est bien positionné et les adresses de a et b semblent bien être alignées 32bits.
Cela dit, même si ce n'est pas l'origine du bug, il faudrait peut être vérifier cette histoire d'alignement de la pile et rajouter une instruction asm pour fixer le DF là où ça pourrait être utile.
Ce bug a 2ans, faudrait voir si il est toujours d'actualité
Oui, il est toujours d'actualité. Le bug concerne Bochs, VirtualBox et KVM. C'est pour le moment contourné en remplaçant systématiquement par des memcpy (voir l'un des derniers commits)
Et dans le même genre :
Ceci crash avec Bochs :
struct tm t = {
.tm_sec = seconds,
.tm_min = minutes,
.tm_hour = hours;
.tm_mday = date->day,
.tm_mon = date->month - 1,
.tm_year = date->year + 80,
};
Alors que :
struct tm t1;
t1.tm_sec = seconds;
t1.tm_min = minutes;
t1.tm_hour = hours;
t1.tm_mday = date->day;
t1.tm_mon = date->month - 1;
t1.tm_year = date->year + 80;
marche.
Si la structure à copier est trop grosse, au lieu de faire plein de movl, il va utiliser un rep ce qui fait planter Bochs...