วันพฤหัสบดีที่ 31 มีนาคม พ.ศ. 2559

การตรวจสอบ หรือ Debug โปรแกรม ใน Android Studio

การ Debug โปรแกรม เป็นเรื่องสำคัญ เพราะทำให้เรารู้ว่ามีข้อผิดพลาด หรือ Error อะไรเกิดขึ้นอย่างไร และ ณ จุดนั้น ค่าต่าง ๆ ของตัวแปรเป็นอย่างไร เป็นไปตามที่ต้องการหรือไม่ เพื่อที่จะได้แก้ไขให้ตรงจุด ก่อนการแก้ไข ควรเปิด Simulator ให้เรียบร้อยเสียก่อน ผมชอบใช้ โทรศัพท์จริง เป็น Simulator เพราะเท่าที่สังเกตดูน่าจะเร็วกว่าการใช้ Simulator ใน PC

การ Debug โปรแกรมใน Android Studio มีดังนี้

  1. เปิดโปรแกรม ใน Android Studio และไปยังจุดที่ต้องการดูค่าต่าง ๆ 
  2. คลิกเพิ่มจุดหยุด หรือ Break point หน้าบรรทัดที่ต้องการดูค่าตัวแปร
    ในภาพ จะเห็นว่ามีการกำหนดจุดหยุด 2 จุดด้วยกัน
  3. คลิกปุ่ม Debug บนแถบเมนู
  4. Android Studio จะให้เลือก Simulator ถ้าเปิดไว้ก่อนก็จะมีมาแสดง ในตัวอย่างนี้ ผมใช้โทรศัพท์ จึงแสดงดังภาพ
  5. เมื่อกดปุ่ม OK โปรแกรม Android Studio จะทำงานในโหมด Debug โดยจะหยุดในตำแหน่งที่ระบุไว้ด้วยจุดสีแดง 
  6. จะเห็นมีหน้าจอ Debug เกิดขึ้น ถ้าไม่เห็น สามารถคลิกแถบ Debug ที่ด้านล่างได้
  7. ในหน้าจอ Debug จะเห็นแถบควบคุมต่าง ๆ เช่น แถบตรวจดูค่าของตัวแปร หรือ Watches
  8. ถ้าไม่เห็นแถบดังกล่าว แสดงว่าแถบนั้น ๆ อยู่ในสภาพเป็นปุ่ม อยู่ทางขวาด้านบนของหน้าจอ Debug
  9. ถ้าต้องการดู่ค่าตัวแปรใด ให้เปิดแถบดูค่าตัวแปร (Watches) และคลิกเครื่องหมายบวก พร้อมกับพิมพ์ชื่อตัวแปร สามารถพิมพ์ได้หลายตัวแปร
  10. ในตัวอย่างนี้ เนื่องจากเรากำหนดหยุด ก่อนที่โปรแกรมจะทำงานหาค่า ของ data ดังนั้นจึงยังไม่แสดงค่าใด ๆ จะเห็นข้อความแสดงว่าไม่พบตัวแปรที่กำหนด (Cannot find local variable 'data'
  11. คำสั่งที่ให้โปรแกรมทำงานต่อที่ควรรู้ คือ
    Step Over  กดปุ่ม F8 เพื่อให้โปรแกรมทำงานในบรรทัดต่อไป
    Step Into กดปุ่ม F7 เพื่อให้โปรแกรมเข้าไปทำงานใน ฟังก์ชันที่ซ่อนไว้ หรือ ส่วนที่อ้างอิงถึง
    Resume Program กดปุ่ม F9 เมื่อกดปุ่มนี้ ถ้ามีจุดหยุด หรือ Break point อีก โปรแกรมจะหยุดที่จุด Break point จุดต่อไป ซึ่งมีประโยชน์มาก ทำให้ไม่ต้องไปทีละบรรทัด
    ดูรายละเอียดได้ โดยคลิก Run บนแถบเมนู เพื่อคลี่ดูคำสั่งต่าง ๆ
  12. ณ จุดหยุด หรือ Break point นั้น ๆ ถ้าตัวแปรใด ยังมีค่าอยู่ จะเห็นค่าปรากฎ ดังภาพ
  13. มีข้อน่าสังเกตคือ ในการระบุตัวแปรที่ต้องการดูค่า เราสามารถใช้คำสั่งเพิ่มเติมได้ เช่น ดูค่า element แรกในตัวแปร Array เราสามารถใช้คำสั่ง get ได้ เช่น ในตัวอย่างคือ dataList.get(0) เป็นต้น

ไม่มีความคิดเห็น:

แสดงความคิดเห็น