O Enigmático Bug do Word 97: Um Desafio para Desenvolvedores
Descubra como um bug crítico do Word 97 desafiou a equipe da Microsoft antes do lançamento, revelando curiosidades sobre depuração de software.
Arte editorial automática
Raymond Chen, um experiente programador da Microsoft, compartilha histórias intrigantes dos bastidores da empresa. A mais recente envolve o Word 97, um editor de textos icônico que apresentou um bug crítico, que desaparecia durante a investigação, deixando os desenvolvedores perplexos. Essa falha estava vinculada a um hardware específico.
Chen relata que o problema foi identificado pouco antes do lançamento oficial do Office 97. Os desenvolvedores conseguiam reproduzir o erro utilizando um script elaborado, mas, ao usar um depurador (debugger) para localizar o código problemático, o bug simplesmente não aparecia.
Esse fenômeno peculiar ganhou o nome de “Heisenbug”, uma referência ao físico Werner Heisenberg, que descreveu como a observação pode alterar o estado de um sistema. No caso do bug, a observação durante a depuração parecia mudar as condições que o faziam aparecer.
Diante da situação, os desenvolvedores discutiram várias abordagens, incluindo o uso de um ICE (In-Circuit Emulator), um equipamento que permite emular e analisar o comportamento de um processador. Chen comparou a empolgação dos desenvolvedores com a possibilidade de usar um ICE à de uma criança que descobre um caminhão de bombeiros.
No entanto, o uso do equipamento não foi necessário. A equipe percebeu que a maioria dos computadores que apresentava o bug era de um único fabricante. Investigando mais a fundo, descobriram que um defeito conhecido no projeto do processador dessas máquinas era a verdadeira causa da falha.
A boa notícia é que já existia uma versão atualizada do compilador utilizado no Word 97, capaz de evitar o problema. A má notícia era que atualizar o compilador naquele momento poderia introduzir novos e indesejados bugs no software.
Diante desse cenário, os desenvolvedores tiveram que buscar a sequência de instruções problemática no executável já compilado. Essa tarefa se revelou complexa, pois cerca de 150 ocorrências suspeitas foram identificadas. No final, descobriram que apenas uma dessas ocorrências extrapolava o limite da página de memória e causava o problema. Um patch aplicado diretamente no binário resolveu a questão.
Um desfecho complicado, mas que teve um final positivo. O bug do Word 97, que desaparecia quando era observado, tornou-se parte da história dos desafios enfrentados pela equipe de desenvolvimento da Microsoft.
