เหตุผลที่ใหญ่กว่าสำหรับการไม่ดีบั๊กกับ printf () ก็คือมันมักจะไม่มีประสิทธิภาพไม่เพียงพอและไม่จำเป็น
ไม่มีประสิทธิภาพ: printf () และเครือญาติใช้แฟลชและ RAM จำนวนมากเมื่อเทียบกับสิ่งที่มีอยู่ในไมโครคอนโทรลเลอร์ขนาดเล็ก การเปลี่ยนสิ่งที่บันทึกไว้จะต้องรวบรวมใหม่และกำหนดเป้าหมายใหม่ซึ่งจะทำให้กระบวนการช้าลง นอกจากนี้ยังใช้ UART ที่คุณอาจใช้เพื่อทำงานที่มีประโยชน์
ไม่เพียงพอ: มีรายละเอียดมากมายที่คุณสามารถแสดงผลผ่านลิงก์อนุกรม หากโปรแกรมหยุดทำงานคุณจะไม่ทราบว่าอยู่ที่ไหนเพียงแค่ผลลัพธ์สุดท้ายที่เสร็จสมบูรณ์
ไม่จำเป็น: ไมโครคอนโทรลเลอร์หลายตัวสามารถดีบั๊กจากระยะไกลได้ JTAG หรือโปรโตคอลที่เป็นกรรมสิทธิ์สามารถใช้เพื่อหยุดโปรเซสเซอร์ชั่วคราวดูที่รีจิสเตอร์และ RAM และแม้แต่เปลี่ยนสถานะของโปรเซสเซอร์ที่รันอยู่โดยไม่ต้องคอมไพล์ใหม่ นี่คือสาเหตุที่นักดีบั๊กโดยทั่วไปเป็นวิธีที่ดีกว่าในการดีบักกว่าข้อความสั่งพิมพ์แม้กระทั่งบนพีซีที่มีพื้นที่และพลังงานมากมาย
น่าเสียดายที่แพลตฟอร์มไมโครคอนโทรลเลอร์ที่พบมากที่สุดสำหรับมือใหม่ Arduino ไม่ได้มีการดีบั๊ก AVR รองรับการดีบักแบบรีโมท แต่โปรโตคอล debugWIRE ของ Atmel นั้นเป็นกรรมสิทธิ์และไม่มีเอกสาร คุณสามารถใช้บอร์ด dev อย่างเป็นทางการเพื่อตรวจแก้จุดบกพร่องด้วย GDB แต่ถ้าคุณมีที่คุณอาจไม่กังวลเกี่ยวกับ Arduino อีกต่อไป