สามารถช่วยระบุและแก้ไขข้อบกพร่องของแอปพลิเคชันได้ ในบทความนี้ ผู้เขียนจะใช้ Eclipse ซึ่งเป็นเครื่องมือในการพัฒนาที่ใช้กันทั่วไปเพื่อดีบักแอปพลิเคชัน Java อย่างไรก็ตาม วิธีการแก้ไขข้อบกพร่องที่แนะนำในที่นี้โดยพื้นฐานแล้วจะใช้ได้กับ NetBeans IDE เช่นกัน เราจะเน้นไปที่รันไทม์
ก่อนที่จะเริ่มฉันขอแนะนำให้คุณอ่านบทความทางลัด Eclipse ซึ่งจะทำให้คุณสะดวกสบายมาก ในบทความนี้มีการใช้เวอร์ชัน Eclipse Juno (Eclipse 4.2) ฉันอยากจะให้คำแนะนำ 3 ข้อก่อนเริ่ม!
อย่าใช้ System.out.println เป็นเครื่องมือแก้ไขข้อบกพร่อง เปิดใช้งานระดับการบันทึกสำหรับส่วนประกอบที่เกี่ยวข้องทั้งหมด และใช้เครื่องมือวิเคราะห์บันทึกเพื่ออ่านบันทึก
1.จุดพักแบบมีเงื่อนไข
หากคุณไม่ทราบวิธีเพิ่มเบรกพอยต์ เพียงคลิกที่แผงด้านซ้าย (ก่อนหมายเลขบรรทัด) จากนั้นเบรกพอยต์จะถูกสร้างขึ้น ในอินเทอร์เฟซการดีบัก มุมมอง "เบรกพอยต์" จะแสดงรายการเบรกพอยต์ที่สร้างขึ้นทั้งหมด เราสามารถเพิ่มเงื่อนไขบูลีนเข้าไปได้ กล่าวคือ เบรกพอยต์จะถูกเปิดใช้งาน และหากเงื่อนไขบูลีนเป็นจริง เบรกพอยต์จะถูกดำเนินการ ไม่เช่นนั้นก็จะข้ามการดำเนินการไป
2. เบรกพอยต์ข้อยกเว้น
ในมุมมองเบรกพอยต์ มีปุ่มเครื่องหมาย J! เราสามารถใช้ปุ่มนี้เพื่อเพิ่มเบรกพอยต์ข้อยกเว้น Java ตัวอย่างเช่น ถ้าเราต้องการให้โปรแกรมยังคงสามารถทำการดีบักต่อไปได้เมื่อพบ NullPointerException เราก็สามารถใช้ปุ่มนี้เพื่อเพิ่มเบรกพอยต์ข้อยกเว้นได้!
3. จุดติดตาม
นี่เป็นคุณสมบัติที่ดีมากที่หยุดการทำงานของโปรแกรมและอนุญาตให้มีการดีบักเมื่อมีการเข้าถึงหรือแก้ไขคุณสมบัติที่เลือก เลือกตัวแปรคลาสในมุมมองเค้าร่าง และเลือกสลับจุดเฝ้าดูจากเมนูบริบท จุดเฝ้าดูแอตทริบิวต์จะถูกสร้างขึ้น และจุดเฝ้าดูทั้งหมดจะแสดงในรูปแบบของรายการในมุมมองจุดพัก
4.การประเมิน/การตรวจสอบ
กด Ctrl+Shift+D หรือ Ctrl+Shift+I เพื่อแสดงค่าของตัวแปรหรือนิพจน์ที่เลือก นอกจากนี้เรายังสามารถเพิ่มจุดเฝ้าระวังแบบถาวรให้กับตัวแปรหรือนิพจน์ได้ เมื่อโปรแกรมถูกดีบั๊ก จุดเฝ้าระวังเหล่านี้จะแสดงในมุมมองนิพจน์
5. แก้ไขค่าตัวแปร
ในระหว่างการดีบัก เราสามารถแก้ไขค่าตัวแปรได้ ขั้นแรก ให้เลือกตัวแปร จากนั้นเข้าสู่มุมมองตัวแปร และป้อนค่าในคอลัมน์ค่าที่สอดคล้องกันตามประเภทตัวแปร
6. หยุดการดำเนินการในฟังก์ชันหลัก
ในการตั้งค่าการรัน/ดีบัก จะมีแท็บ "หลัก" ในกล่องโต้ตอบแก้ไขการกำหนดค่า และเราสามารถตรวจสอบช่องทำเครื่องหมาย "หยุดในหลัก" ได้ หากเลือก เมื่อทำการดีบักโปรแกรม Java ตามวิธีการหลัก โปรแกรมจะหยุดการทำงานที่บรรทัดแรกของวิธีการหลัก
7. ตัวแปรสภาพแวดล้อม
แทนที่จะเพิ่มตัวแปรสภาพแวดล้อมในคุณสมบัติของระบบ เราสามารถเพิ่มลงในกล่องโต้ตอบแก้ไขการกำหนดค่าได้อย่างง่ายดาย
8.วางไปที่เฟรม
นี่เป็นหนึ่งในคุณสมบัติที่ฉันชื่นชอบ ในระหว่างการดีบัก คุณสามารถข้ามกลับไปยังจุดเริ่มต้นของเฟรม call stack และค่าตัวแปรจะกลับสู่จุดเริ่มต้น ปรับความลึกของสแต็กตามการย้อนกลับ วัตถุประสงค์หลักของฟังก์ชันนี้คือเพื่อคืนสถานะของตัวแปรทั้งหมดให้เป็นสถานะอย่างรวดเร็วเมื่อเริ่มดำเนินการวิธีการ จากนั้นคุณก็สามารถดำเนินการซ้ำแล้วซ้ำอีกได้ ที่คุณสามารถแก้ไขจุดบกพร่องได้หลายครั้งหากคุณกังวล อย่างไรก็ตาม จะมีผลข้างเคียงบางอย่างในระหว่างกระบวนการดำเนินการ เช่น ข้อมูลที่แทรกลงในฐานข้อมูลไม่สามารถลบได้!
9. การกรองการกระจาย
เมื่อเราป้อนเมธอด (F5) เรายังสามารถเข้าถึงไลบรารี่ภายนอกได้ (เช่น java.*) เราอาจไม่ต้องการไลบรารีนี้ ดังนั้นเราจึงสามารถเพิ่มตัวกรองลงในหน้าแท็บ Perference เพื่อแยกแพ็คเกจนี้ได้
10. เข้าออกและกลับ
ฉันทิ้งสิ่งนี้ไว้สำหรับจุดสุดท้าย สิ่งเหล่านี้คือสิ่งที่ต้องเข้าใจ (และควรเชี่ยวชาญ) ระหว่างการดีบัก:
F5 - Enter: ย้ายไปยังขั้นตอนถัดไป หากมีการเรียกเมธอดในบรรทัดปัจจุบัน ตัวควบคุมจะข้ามไปยังบรรทัดแรกของเมธอดที่ถูกเรียกเพื่อดำเนินการ
F6 - กระโดดออก: เลื่อนไปยังบรรทัดถัดไป หากมีการเรียกใช้เมธอดในบรรทัดปัจจุบัน มันจะย้ายโดยตรงไปยังบรรทัดถัดไปเพื่อดำเนินการ มันจะไม่เข้าสู่เนื้อหาของวิธีการที่เรียกว่า
F7 - Return: ข้ามออกจากวิธีปัจจุบันและดำเนินการต่อไป
F8——ย้ายไปยังจุดพักถัดไปเพื่อดำเนินการ