Java:
การใช้งานโปรแกรมดีบักเกอร์

วิธีการ:

สมมติว่าคุณมีโปรแกรมจาวาง่ายๆที่กำลังมีปัญหา และคุณไม่สามารถหาสาเหตุได้ นี่คือวิธีที่คุณจะเริ่มใช้งานดีบักเกอร์โดยใช้ Eclipse ซึ่งเป็นหนึ่งใน IDE ยอดนิยมสำหรับการพัฒนา Java:

ขั้นแรก ตรวจสอบว่าคุณได้ตั้งจุดหยุด (breakpoint) แล้วหรือไม่ จากนั้นคลิกขวาที่ไฟล์ เลือก ‘Debug As’ และคลิกที่ ‘Java Application’

public class DebugExample {
    public static void main(String[] args) {
        int a = 5;
        int b = 0;
        // ตั้งจุดหยุดที่นี่
        int result = divide(a, b);
        System.out.println("ผลลัพธ์คือ: " + result);
    }

    private static int divide(int numerator, int denominator) {
        // อีกจุดที่ดีสำหรับการตั้งจุดหยุด
        return numerator / denominator;
    }
}

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

ตัวอย่างผลลัพธ์ (ในคอนโซลดีบักเกอร์):

จุดหยุดที่บรรทัด: int result = divide(a, b);

ศึกษาลึก

แนวคิดของการดีบักมีตั้งแต่ยุคแรกๆของการเขียนโปรแกรม ตำนานบอกว่าคำว่า “บัก” มาจากแมลงที่หน้าตาเหมือนสัตว์ปีกขนาดเล็กจริงๆที่พบในคอมพิวเตอร์โดย Grace Hopper ผู้เป็นสัญลักษณ์ในสาขานี้ หลังจากนั้นถึงปัจจุบัน เรามี IDE ที่ซับซ้อนอย่าง IntelliJ IDEA, Eclipse, และ NetBeans ที่มาพร้อมกับดีบักเกอร์อันทรงพลัง

ตัวเลือกทางเลือกสำหรับดีบักเกอร์ IDE ประกอบด้วยการบันทึก, คำสั่งพิมพ์ (ดีบักเกอร์ของคนยากจน), การใช้การยืนยัน, และเครื่องมือดีบักแบบอิสระเช่น jdb (Java Debugger) ซึ่งเป็นส่วนหนึ่งของ Java Development Kit (JDK)

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

ดูเพิ่มเติม

  • เอกสารหลักสูตร Oracle เกี่ยวกับการดีบัก: Oracle Java SE Debugging
  • คู่มือของ Eclipse เกี่ยวกับการดีบัก: Eclipse Debugging Tips
  • VisualVM, เครื่องมือภาพรวมที่รวมเครื่องมือ command-line ของ JDK หลายอย่างและความสามารถในการโปรไฟล์แบบเบา: VisualVM