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

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

ทำเครื่องหมายด้วยจุดพัก

การคลิกเมาส์ครั้งที่สองบนบานหน้าต่างด้านซ้ายของโค้ดจะเป็นการลบเบรกพอยต์

นอกจากนี้ยังสามารถวาง เบรกพอยต์ บนบรรทัด ปัจจุบันได้ง่ายๆ โดยใช้ปุ่มลัดCtrl+ F8การกดCtrl+ F8อีกครั้งบนบรรทัดที่มีเบรกพอยต์ อยู่แล้ว จะเป็นการลบทิ้ง


4. เริ่มโปรแกรมในโหมดดีบัก

หากคุณมีเบรกพอยต์อย่างน้อยหนึ่งจุดในโปรแกรม คุณสามารถเรียกใช้โปรแกรมในโหมดแก้ไขจุดบกพร่องได้โดยการกดShift+ F9หรือคลิกที่ "ไอคอนจุดบกพร่อง"

หลังจากเริ่มต้นในโหมดแก้ไขข้อบกพร่อง โปรแกรมจะทำงานตามปกติ แต่ทันทีที่มาถึงบรรทัดของรหัสที่มีจุดพักมันจะหยุดชั่วคราว ตัวอย่าง:

เริ่มโปรแกรมในโหมดดีบัก

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

ในครึ่งล่างของหน้าจอ คุณจะเห็นบานหน้าต่างดีบัก: บานหน้าต่างดีบักเกอร์ บานหน้าต่าง คอนโซล  และชุดปุ่มสำหรับโหมดดีบัก

คุณสามารถยกเลิกการหยุดโปรแกรมของคุณชั่วคราว (เช่น ดำเนินการต่อ) โดยกด ปุ่ม Resume Programที่ด้านล่างซ้าย (หรือกดF9)

เริ่มโปรแกรมในโหมดดีบัก 3

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

เริ่มโปรแกรมในโหมดดีบัก 4

โปรแกรมหยุดที่เบรกพอยต์ที่สอง และคำHelloและandสามารถเห็นได้ในคอนโซล นี่เป็นสัญญาณว่าเราได้ดำเนินการเพียงสองในสามบรรทัดที่แสดงผลลัพธ์บนหน้าจอ


5. การดำเนินการทีละขั้นตอน

หากโปรแกรมของคุณกำลังทำงาน ในโหมดแก้ไขจุดบกพร่อง คุณยังสามารถทำทีละขั้นตอน: หนึ่งขั้นตอนคือหนึ่งบรรทัด มีปุ่มลัดสองปุ่มสำหรับการดำเนินการทีละขั้นตอน: F7และF8: แต่ละปุ่มทำให้บรรทัดปัจจุบันของโค้ดถูกดำเนินการ แต่ก่อนอื่น คุณยัง คงต้องหยุดโปรแกรมของคุณด้วยเบรกพอยต์

หากคุณต้องการรันโปรแกรมทีละบรรทัด คุณต้องใส่เบรกพอยต์ที่จุดเริ่มต้นของmain()เมธอดและรันในโหมดดีบัก

เมื่อโปรแกรมหยุดทำงาน คุณสามารถเริ่มดำเนินการทีละบรรทัด การกดปุ่มหนึ่งครั้งF8จะดำเนินการหนึ่งบรรทัด

นี่คือลักษณะของโปรแกรมของเราหลังจากที่หยุดทำงานและเรากดF8ปุ่มหนึ่งครั้ง:

เริ่มโปรแกรมในโหมดดีบัก  การดำเนินการทีละขั้นตอน

บรรทัดแรกของเมธอดหลักได้รับการดำเนินการแล้ว และบรรทัดปัจจุบันคือบรรทัดที่สอง คุณยังสามารถดูที่ด้านล่างของภาพหน้าจอได้ว่ามีคำนั้นHelloแสดงอยู่บนหน้าจอแล้ว


6. การดำเนินการทีละขั้นตอนพร้อมวิธีการทีละขั้นตอน

หากคุณเขียนเมธอดของคุณเองในโปรแกรม และต้องการให้การดำเนินการเข้าสู่เมธอดของคุณในโหมด ดีบักเช่น คุณต้องการ "ก้าวเข้าสู่เมธอด" คุณจะต้องกดF7แทนF8

สมมติว่าคุณทำตามขั้นตอนของโปรแกรมและตอนนี้หยุดอยู่ที่บรรทัดที่ 4 หากคุณกดF8IDEA จะดำเนินการตามบรรทัดที่สี่และไปยังบรรทัดที่ห้า

การดำเนินการทีละขั้นตอนด้วยการก้าวเข้าสู่วิธีที่ 2

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

การดำเนินการทีละขั้นตอนพร้อมการเข้าสู่วิธีการ 3

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