Alasan yang lebih besar untuk tidak melakukan debug dengan printf () adalah bahwa biasanya tidak efisien, tidak memadai, dan tidak perlu.
Tidak efisien: printf () dan kin menggunakan banyak flash dan RAM relatif terhadap apa yang tersedia pada mikrokontroler kecil, tetapi inefisiensi yang lebih besar ada dalam debugging yang sebenarnya. Mengubah apa yang sedang dicatat membutuhkan kompilasi ulang dan pemrograman ulang target, yang memperlambat proses. Itu juga menggunakan UART yang bisa Anda gunakan untuk melakukan pekerjaan yang bermanfaat.
Tidak memadai: Hanya ada begitu banyak detail yang dapat Anda hasilkan melalui tautan serial. Jika program hang, Anda tidak tahu persis di mana, hanya output terakhir yang selesai.
Tidak Perlu: Banyak mikrokontroler dapat di-debug jarak jauh. JTAG atau protokol eksklusif dapat digunakan untuk menjeda prosesor, mengintip register dan RAM, dan bahkan mengubah keadaan prosesor yang berjalan tanpa harus mengkompilasi ulang. Inilah sebabnya mengapa debugger umumnya merupakan cara debug yang lebih baik daripada pernyataan cetak, bahkan pada PC dengan banyak ruang dan daya.
Sangat disayangkan bahwa platform mikrokontroler yang paling umum untuk pemula, Arduino, tidak memiliki debugger. AVR mendukung debugging jarak jauh, tetapi protokol debugWIRE Atmel adalah milik dan tidak berdokumen. Anda dapat menggunakan papan dev resmi untuk melakukan debug dengan GDB, tetapi jika Anda memilikinya Anda mungkin tidak terlalu khawatir tentang Arduino lagi.