Bug crítico no Word 97 desaparecia durante a investigação dos desenvolvedores
Leia mais
Tecnoblog
tecnoblog.net

Bug crítico no Word 97 desaparecia durante a investigação dos desenvolvedores

Raymond Chen, um programador experiente da Microsoft, compartilhou relatos internos sobre a empresa, incluindo um incidente relacionado ao Word 97. Esta versão clássica do editor de texto possuía um erro grave que tinha a peculiaridade de desaparecer sempre que era analisado pelos desenvolvedores, gerando grande confusão.

A causa desse problema estava ligada a um componente de hardware. Segundo Chen, a falha provocava um travamento sério e foi detectada pouco antes do lançamento oficial do Office 97.

Inicialmente, os engenheiros da Microsoft conseguiam replicar o defeito executando um script específico. Contudo, ao utilizar um depurador para isolar o trecho exato do código-fonte com falha, o bug deixava de aparecer. Esse fenômeno é conhecido entre os desenvolvedores como «Heisenbug», uma alusão ao físico Werner Heisenberg, que postulou que a observação de um sistema pode modificar seu estado.

Como o erro não se manifestava durante a depuração, os desenvolvedores da Microsoft debateram diferentes soluções até que alguém sugeriu o emprego de um ICE (Emulador de Circuito Integrado), um equipamento projetado para simular e analisar o comportamento de um processador com precisão.

Chen comparou o entusiasmo dos desenvolvedores pela ideia do ICE à sensação de uma criança de cinco anos que descobre poder andar em um caminhão de bombeiros. No entanto, o equipamento acabou não sendo essencial. Os desenvolvedores da Microsoft notaram que a maioria dos computadores afetados vinha de um único fabricante. Ao investigar esse detalhe, eles descobriram que um defeito já conhecido no projeto do processador dessas máquinas era o responsável pela falha.

Felizmente, havia uma versão atualizada do compilador utilizada no Word 97 que poderia prevenir o erro. A complicação residia no fato de que atualizar o compilador naquele momento poderia introduzir novos e graves problemas no Word 97. Assim, os desenvolvedores precisaram rastrear a sequência de instruções problemática dentro do executável já compilado. Este foi um processo complexo, visto que aproximadamente 150 ocorrências potencialmente culpadas foram identificadas.

Ao final, eles concluíram que apenas uma dessas ocorrências excedia o limite da página de memória, o que causava o problema. A aplicação de um ajuste (patch) diretamente no binário solucionou o bug, encerrando um período turbulento, mas satisfatório.

Popular