Kilka razy miałem jakieś podejrzane dane wyjściowe na monitorze szeregowym po przesłaniu kodu do Arduino: jak wieczne wyjście białych znaków lub nagle odcięcie ciągów lub zakodowanych ciągów.
Ponieważ w Arduino IDE nie było błędu kompilacji ani ostrzeżenia, pomyślałem, że Arduino jest zepsute, ale po kilku testach odkryłem, że kompilator Arduino IDE nie przechwytuje wszystkich rodzajów błędów - szczególnie przy przypisywaniu zmiennych w pętli do struktur tablicowych. Wydaje się, że doprowadziło to do awarii Arduino w krótkim czasie.
Jak mogę wykryć błędy nie wyświetlane przez Arduino IDE?
//
. :-(Wygląda na to, że mówisz o błędach środowiska wykonawczego (typu wyciek pamięci / segfault).
Nie ma żadnego sposobu na wykrycie takich błędów (chyba że bardzo starannie przeczesujesz kod) w kodzie, który jest już napisany. Jednak dość łatwo jest temu zapobiec podczas pisania kodu. Bądź bardzo ostrożny, pisząc pętle lub połączenia rekurencyjne; zadaj sobie pytanie „czy to wymknie się spod kontroli?”. Jeśli wygląda na to, że jest to pole do „wymknięcia się spod kontroli”, to napisz kod, aby się przed tym zabezpieczyć.
O segfaultach - po prostu sprawdź wartości brzegowe indeksów tablic i powinieneś być w porządku. Jeśli używasz wskaźników, bądź ostrożny z arytmetyką wskaźników.
źródło