Несколько раз у меня возникали некоторые подозрительные результаты на Serial Monitor после загрузки кода в Arduino: например, вечный вывод пробелов или внезапный разрыв строк или зашифрованных строк.
Поскольку в Arduino IDE не было ни ошибки компиляции, ни предупреждения, я подумал, что Arduino не работает, но после некоторых тестов я обнаружил, что компилятор Arduino IDE перехватывает не все виды ошибок, особенно при назначении переменных в цикле для структур массива. Это, кажется, разбивает Arduino за короткий промежуток времени.
Как я могу обнаружить ошибки, не отображаемые в Arduino IDE?
//
. :-(Похоже, вы говорите об ошибках во время выполнения (типа утечки памяти / типа segfault) здесь.
Нет никакого способа обнаружить такие ошибки (если вы не очень тщательно прочесываете код) в уже написанном коде. Тем не менее, это довольно легко предотвратить во время написания кода. Просто будьте очень осторожны при написании циклов или рекурсивных вызовов; спросите себя "может ли это выйти из-под контроля?" Если это выглядит так, как будто это «выходит из-под контроля», тогда напишите код для защиты от этого.
О segfaults - просто проверьте граничные значения индексов массива, и все должно быть в порядке. Если вы используете указатели, будьте осторожны с арифметикой указателей.
источник