Beberapa kali saya memiliki beberapa keluaran mencurigakan pada Serial Monitor setelah mengunggah kode ke Arduino: seperti output abadi spasi putih atau tiba-tiba memotong string atau string acak.
Karena tidak ada kesalahan kompilasi atau peringatan di Arduino IDE saya pikir Arduino rusak tetapi setelah beberapa tes saya menemukan bahwa tidak semua jenis kesalahan ditangkap oleh kompiler Arduino IDE - terutama ketika menugaskan variabel dalam loop untuk struktur array. Ini tampaknya menabrak Arduino dalam waktu singkat.
Bagaimana saya menemukan kesalahan yang tidak ditampilkan oleh Arduino IDE?
//
. :-(Sepertinya Anda berbicara tentang kesalahan runtime (dari tipe kebocoran memori / segfault) di sini.
Tidak ada cara untuk menemukan kesalahan seperti itu (kecuali Anda menyisir kode dengan sangat hati-hati) dalam kode yang sudah ditulis. Namun, cukup mudah untuk mencegah hal ini terjadi saat menulis kode. Berhati-hatilah saat menulis loop atau panggilan rekursif; tanyakan pada diri sendiri "bisakah ini lepas kendali?". Jika sepertinya ini adalah ruang untuk "keluar dari tangan", maka tulis kode untuk melindunginya.
Tentang segfaults - cukup periksa nilai batas indeks array dan Anda harus OK. Jika Anda menggunakan pointer, maka harap berhati-hati dengan aritmatika pointer.
sumber