1. บั๊ก
โปรแกรมเมอร์มีคำสแลงของตัวเอง แม้ว่าหลายคนจะคิดว่ามันเป็นศัพท์แสงทางเทคนิคก็ตาม ไม่ว่าในกรณีใด คุณไม่สามารถหลีกเลี่ยงการทำความรู้จักได้ คุณต้องดำดิ่งลงไปในรายละเอียด มาดำน้ำกันเถอะ
คำแรกที่คุณจะได้รู้จักคือ " แมลง"ซึ่งก็คือแมลง ในบริบทของการพัฒนาซอฟต์แวร์ คำนี้หมายถึงข้อผิดพลาดในโปรแกรม ตัวอย่างที่โปรแกรมทำบางอย่างผิดพลาดหรือไม่ถูกต้องทั้งหมด หรือเพียงแค่ทำงานแปลก ๆ
แต่ถ้าโปรแกรมเมอร์คิดว่าโปรแกรมกำลังทำในสิ่งที่ควรจะทำ แม้ว่าจะมีพฤติกรรมแปลกๆ ก็ตาม เขาหรือเธอมักจะประกาศประมาณว่า "ไม่ใช่บั๊ก แต่เป็นฟีเจอร์" ซึ่งได้สร้างมส์ทางอินเทอร์เน็ตมากมาย

โดยทั่วไป อาจมีสาเหตุหลายประการสำหรับข้อบกพร่องของซอฟต์แวร์ ไม่ว่าจะเป็นข้อผิดพลาดในตรรกะของโปรแกรม การพิมพ์ผิด และสถาปัตยกรรมโปรแกรมที่ไม่ถูกต้อง ไปจนถึงปัญหาในคอมไพเลอร์ ไม่ว่าในกรณีใด โปรแกรมเมอร์จำเป็นต้องแก้ไขทั้งข้อบกพร่องจริงและ "ข้อบกพร่อง" อื่นๆ ในโปรแกรมของตน
ประวัติของคำว่า "บั๊ก"
ต้นกำเนิดของคำว่า "บั๊ก" ที่พบได้บ่อยที่สุดคือตำนาน
ในเดือนกันยายน พ.ศ. 2488 นักวิทยาศาสตร์ที่มหาวิทยาลัยฮาร์วาร์ดกำลังทดสอบคอมพิวเตอร์เครื่องแรก Mark II คอมพิวเตอร์ทำงานผิดปกติ และระหว่างการตรวจสอบบอร์ดทั้งหมด พวกเขาพบตัวมอดติดอยู่ระหว่างหน้าสัมผัสของรีเลย์ไฟฟ้า
แมลงที่สกัดได้ถูกบันทึกไว้ในบันทึกทางเทคนิค พร้อมด้วยคำจารึกนี้: "พบข้อผิดพลาดกรณีแรกที่เกิดขึ้นจริง"
เรื่องราวตลกขบขันนี้เชื่อว่าเป็นจุดเริ่มต้นของการใช้คำว่า " บั๊ก " เพื่อหมายถึงข้อผิดพลาด และคำว่า " ดีบั๊ก " ก็กลายเป็นคำพ้องความหมายกับการกำจัดบั๊ก
2. การดีบักโปรแกรม
เพื่อแก้ไขข้อบกพร่องในโปรแกรม โปรแกรมเมอร์ใช้โปรแกรมพิเศษที่เรียกว่าดีบักเกอร์ บางโปรแกรมรู้วิธีดีบักรหัสเครื่องด้วยซ้ำ
โปรแกรมเมอร์ Java ใช้ IDE สำหรับการดีบักโปรแกรมของตน เช่น IntelliJ IDEA, Eclipse และ NetBeans IntelliJ IDEA เป็น IDE ที่ทรงพลังที่สุด ดังนั้นเราจะแนะนำกระบวนการแก้ไขจุดบกพร่องโดยใช้เป็นตัวอย่าง
IntelliJ IDEA สามารถเรียกใช้โปรแกรมของคุณได้ในสองโหมด:
โหมดการดำเนินการ | ไอคอนแถบเครื่องมือ | ปุ่มลัด |
---|---|---|
การดำเนินการตามปกติ | ![]() |
Shift +F10 |
เริ่มต้นในโหมดดีบัก | ![]() |
Shift +F9 |
คุณคุ้นเคยกับการดำเนินการตามปกติอยู่แล้ว: โปรแกรมเริ่มต้น รัน และออก แต่โหมดดีบั๊กมีสิ่งที่น่าประหลาดใจรอคุณอยู่มากมาย
โหมดดีบัก
โหมดแก้ไขจุดบกพร่องช่วยให้คุณดำเนินการทีละขั้นตอนผ่านโปรแกรมทั้งหมดของคุณ หรือพูดให้ถูกคือ ให้คุณย้ายทีละบรรทัด ยิ่งไปกว่านั้น คุณยังสามารถสังเกตค่าของตัวแปรในแต่ละขั้นตอนของโปรแกรม (หลังจากดำเนินการโค้ดแต่ละบรรทัดแล้ว) และคุณยังสามารถเปลี่ยนค่าของมันได้!
เพื่อให้เข้าใจการดีบั๊กโปรแกรมน้อยที่สุด คุณต้องเรียนรู้สามสิ่งต่อไปนี้:
- จุดพัก
- การดำเนินการทีละขั้นตอน
- การตรวจสอบค่าของตัวแปร
3. จุดพัก
IDE ให้คุณวางเครื่องหมายพิเศษที่เรียกว่าเบรกพอยต์ในโค้ดของคุณ ทุกครั้งที่โปรแกรมทำงานในโหมดดีบั๊กถึงบรรทัดที่มีเครื่องหมายเบรกพอยต์การดำเนินการจะหยุดชั่วคราว
หากต้องการวางเบรกพอยต์บนบรรทัดใดบรรทัดหนึ่ง คุณเพียงแค่คลิกที่ด้านซ้ายของบรรทัดใน IDEA ตัวอย่าง:

บรรทัดจะถูกทำเครื่องหมายด้วยเบรกพอยต์ และ IntelliJ IDEA จะเน้นเป็นสีแดง:

การคลิกเมาส์ครั้งที่สองบนบานหน้าต่างด้านซ้ายของโค้ดจะเป็นการลบเบรกพอยต์
นอกจากนี้ยังสามารถวาง เบรกพอยต์ บนบรรทัด ปัจจุบันได้ง่ายๆ โดยใช้ปุ่มลัดCtrl
+ F8
การกดCtrl
+ F8
อีกครั้งบนบรรทัดที่มีเบรกพอยต์ อยู่แล้ว จะเป็นการลบทิ้ง
4. เริ่มโปรแกรมในโหมดดีบัก
หากคุณมีเบรกพอยต์อย่างน้อยหนึ่งจุดในโปรแกรม คุณสามารถเรียกใช้โปรแกรมในโหมดแก้ไขจุดบกพร่องได้โดยการกดShift
+ F9
หรือคลิกที่ "ไอคอนจุดบกพร่อง"
หลังจากเริ่มต้นในโหมดแก้ไขข้อบกพร่อง โปรแกรมจะทำงานตามปกติ แต่ทันทีที่มาถึงบรรทัดของรหัสที่มีจุดพักมันจะหยุดชั่วคราว ตัวอย่าง:

ในครึ่งบนของภาพหน้าจอ คุณจะเห็นโค้ดโปรแกรมที่มีเบรกพอยต์สองจุด การทำงานของโปรแกรมหยุดลงที่บรรทัดที่ 5 ซึ่งมีเส้นสีน้ำเงินกำกับไว้ ยังไม่ได้ดำเนินการบรรทัดที่ 5: ยังไม่มีการส่งออกไปยังคอนโซล
ในครึ่งล่างของหน้าจอ คุณจะเห็นบานหน้าต่างดีบัก: บานหน้าต่างดีบักเกอร์ บานหน้าต่าง คอนโซล และชุดปุ่มสำหรับโหมดดีบัก
คุณสามารถยกเลิกการหยุดโปรแกรมของคุณชั่วคราว (เช่น ดำเนินการต่อ) โดยกด ปุ่ม Resume Programที่ด้านล่างซ้าย (หรือกดF9
)

หากคุณกดปุ่มนี้ (หรือF9
) โปรแกรมจะทำงานต่อไปจนกว่าจะพบเบรกพอยต์ ถัดไป หรือสิ้นสุด นี่คือสิ่งที่เราเห็นหลังจากคลิกปุ่ม:

โปรแกรมหยุดที่เบรกพอยต์ที่สอง และคำHello
และand
สามารถเห็นได้ในคอนโซล นี่เป็นสัญญาณว่าเราได้ดำเนินการเพียงสองในสามบรรทัดที่แสดงผลลัพธ์บนหน้าจอ
5. การดำเนินการทีละขั้นตอน
หากโปรแกรมของคุณกำลังทำงาน ในโหมดแก้ไขจุดบกพร่อง คุณยังสามารถทำทีละขั้นตอน: หนึ่งขั้นตอนคือหนึ่งบรรทัด มีปุ่มลัดสองปุ่มสำหรับการดำเนินการทีละขั้นตอน: F7
และF8
: แต่ละปุ่มทำให้บรรทัดปัจจุบันของโค้ดถูกดำเนินการ แต่ก่อนอื่น คุณยัง คงต้องหยุดโปรแกรมของคุณด้วยเบรกพอยต์
หากคุณต้องการรันโปรแกรมทีละบรรทัด คุณต้องใส่เบรกพอยต์ที่จุดเริ่มต้นของmain()
เมธอดและรันในโหมดดีบัก
เมื่อโปรแกรมหยุดทำงาน คุณสามารถเริ่มดำเนินการทีละบรรทัด การกดปุ่มหนึ่งครั้งF8
จะดำเนินการหนึ่งบรรทัด
นี่คือลักษณะของโปรแกรมของเราหลังจากที่หยุดทำงานและเรากดF8
ปุ่มหนึ่งครั้ง:

บรรทัดแรกของเมธอดหลักได้รับการดำเนินการแล้ว และบรรทัดปัจจุบันคือบรรทัดที่สอง คุณยังสามารถดูที่ด้านล่างของภาพหน้าจอได้ว่ามีคำนั้นHello
แสดงอยู่บนหน้าจอแล้ว
6. การดำเนินการทีละขั้นตอนพร้อมวิธีการทีละขั้นตอน
หากคุณเขียนเมธอดของคุณเองในโปรแกรม และต้องการให้การดำเนินการเข้าสู่เมธอดของคุณในโหมด ดีบักเช่น คุณต้องการ "ก้าวเข้าสู่เมธอด" คุณจะต้องกดF7
แทนF8
สมมติว่าคุณทำตามขั้นตอนของโปรแกรมและตอนนี้หยุดอยู่ที่บรรทัดที่ 4 หากคุณกดF8
IDEA จะดำเนินการตามบรรทัดที่สี่และไปยังบรรทัดที่ห้า

แต่ถ้าคุณกดF7
IDEA จะเข้าสู่main2()
วิธีการ:

มันง่ายมาก หากคุณไม่สนใจว่าจะเกิดอะไรขึ้นภายในเมธอดหรืออย่างไร คุณก็F8
กด หากมีความสำคัญให้กดF7
และทำตามขั้นตอนรหัสทั้งหมด
GO TO FULL VERSION