Caçando um Bug Fantasma Embarcado: Erro -22

2025-01-26
Caçando um Bug Fantasma Embarcado: Erro -22

A equipe da Tweede golf encontrou um bug frustrante em seu software embarcado Rust para o microcontrolador nRF9160, resultando no erro Error::NrfError(-22) ao enviar dados para um servidor. Após semanas de investigação, eles rastrearam o problema até a função de inicialização da biblioteca libmodem. Um ponteiro para uma estrutura de configuração alocada na pilha foi usado depois que a estrutura foi destruída, causando gravações não intencionais na configuração da região de memória compartilhada e resultando em um comprimento de dados de 0. Adicionar `black_box` e usar watchpoints finalmente localizaram e corrigiram o bug. A equipe destacou os benefícios do uso de Rust para desenvolvimento embarcado para prevenir erros de baixo nível como esse.

Desenvolvimento