LE PLUS POPULAIRE
L’ingénieur chevronné de Microsoft, Raymond Chen, a partagé une autre histoire au coin du feu, une histoire qui fait peur aux ingénieurs du monde entier : le bug qui ne peut pas être reproduit dans le débogueur.
L’histoire commence vers la fin du cycle de publication de Word 97, lorsqu’un défaut est apparu dans les laboratoires de test mais a disparu au moment où les ingénieurs ont cherché un débogueur.
C’était exaspérant. Un script pourrait déclencher le crash de manière assez fiable, mais dès que quelqu’un essayait de le traquer, le bug disparaissait.
AD ENREGISTREMENT
Chen se souvient : « L’équipe de développement était très anxieuse, car un bug qui n’apparaît que sporadiquement en laboratoire va se produire régulièrement dans la nature. Mais comment déboguer un problème qui résiste au débogage ?
AD ENREGISTREMENT
C’est le cauchemar de tout développeur, même pour les types suffisants qui se penchent en arrière sur leur chaise et disent aux testeurs « ça marche bien ici, mon pote ». Il y a une place particulière réservée dans l’au-delà à ces développeurs.
Le bug refusant de coopérer, les discussions se sont tournées vers un ICE (un émulateur en circuit, pas l’agence d’immigration), qui pourrait remplacer le processeur et autoriser des points d’arrêt à l’intérieur de la puce émulée elle-même.
« Pour la plupart des développeurs de logiciels », a déclaré Chen, « les émulateurs en circuit n’existaient que dans un mythe, et la possibilité d’en acquérir un et de l’utiliser a suscité l’enthousiasme d’un garçon de cinq ans qui apprend qu’il pourrait monter dans un camion de pompiers. »
Finalement, l’équipe a retracé le problème jusqu’à un fabricant spécifique, et de là jusqu’à un erratum du processeur. Le compilateur utilisé à l’époque avait été mis à jour pour éviter la séquence de code problématique. Cependant, à ce moment-là, l’ensemble d’outils était déjà verrouillé. L’échange d’un nouveau compilateur risquait d’introduire de nouveaux bogues inconnus, ce qui était donc hors de propos.
La solution ? Parcourez les binaires pour trouver des instances du code susceptibles de perturber les processeurs. Un a été trouvé. « Pour éviter d’introduire de nouveaux problèmes comme effet secondaire du correctif, l’équipe a choisi d’appliquer un correctif binaire au binaire pour insérer un non dans la séquence de code incriminée. »
Word 97 a introduit de nombreuses fonctionnalités de titre. Il y a eu l’arrivée de Clippit (alias Clippy) et de Visual Basic pour Applications (VBA). Et puis il y a eu un patch binaire produit par des ingénieurs déterminés, qui a reçu beaucoup moins d’attention. Mais sans cela, Word 97 aurait pu être nettement bancal. ®
