Jagd auf einen geisterhaften Embedded-Bug: Fehler -22
Das Tweede-golf-Team stieß auf einen frustrierenden Bug in seiner Embedded-Rust-Software für den Mikrocontroller nRF9160, der zu dem Fehler Error::NrfError(-22) beim Senden von Daten an einen Server führte. Nach wochenlanger Untersuchung spürten sie das Problem bis zur Initialisierungsfunktion der libmodem-Bibliothek zurück. Ein Zeiger auf eine auf dem Stack zugeordnete Konfigurationsstruktur wurde verwendet, nachdem die Struktur zerstört wurde, was zu unbeabsichtigten Schreibvorgängen in die Konfiguration der gemeinsam genutzten Speicherregion führte und eine Datenlänge von 0 ergab. Das Hinzufügen von `black_box` und die Verwendung von Watchpoints lokalisierten und behoben schließlich den Bug. Das Team hob die Vorteile der Verwendung von Rust für die Embedded-Entwicklung hervor, um solche Low-Level-Fehler zu vermeiden.