ฉันต้องการดีบักการไหลทั้งหมดของโปรแกรม Java อะไรคือความแตกต่างระหว่างF5(ก้าวเข้าสู่) และF6(ก้าวข้าม) ใน eclipse?
ฉันต้องการดีบักการไหลทั้งหมดของโปรแกรม Java อะไรคือความแตกต่างระหว่างF5(ก้าวเข้าสู่) และF6(ก้าวข้าม) ใน eclipse?
คำตอบ:
พิจารณาโค้ดต่อไปนี้พร้อมกับตัวชี้คำสั่งปัจจุบันของคุณ (บรรทัดที่จะถูกดำเนินการถัดไประบุโดย->
) ที่f(x)
บรรทัดg()
นั้นโดยเรียกว่าg(2)
บรรทัดในmain()
:
public class testprog {
static void f (int x) {
System.out.println ("num is " + (x+0)); // <- STEP INTO
}
static void g (int x) {
-> f(x); //
f(1); // <----------------------------------- STEP OVER
}
public static void main (String args[]) {
g(2);
g(3); // <----------------------------------- STEP OUT OF
}
}
หากคุณก้าวเข้าสู่จุดนั้นคุณจะย้ายไปที่println()
บรรทัดในf()
โดยเข้าสู่การเรียกใช้ฟังก์ชัน
หากคุณต้องก้าวข้ามไปที่จุดนั้นคุณจะย้ายไปยังf(1)
บรรทัดที่อยู่ข้างหน้าg()
และก้าวข้ามการเรียกใช้ฟังก์ชัน
คุณสมบัติที่มีประโยชน์อีกประการของโปรแกรมดีบั๊กคือขั้นตอนออกหรือย้อนกลับขั้นตอน ในกรณีนั้นการย้อนกลับแบบขั้นตอนจะนำคุณผ่านฟังก์ชั่นปัจจุบันจนกระทั่งคุณย้อนกลับไปหนึ่งระดับ ในคำอื่น ๆ ก็จะก้าวผ่านf(x)
และf(1)
แล้วกลับออกไปยังฟังก์ชั่นการโทรไปจบลงที่ในg(3)
main()
Eclipse (อย่างน้อย Europa ซึ่งเป็นเพียงคนเดียวที่ฉันมีประโยชน์ในขณะนี้) ใช้F5สำหรับstep into
, F6สำหรับstep over
และสำหรับF7step return
g(3)
ในmain()
" <-คุณคิดว่าคุณได้รับตำแหน่งปัจจุบันของคุณจากg(2)
เมื่อคุณเสร็จแล้วคุณจะกลับไปที่บรรทัดถัดไปg(3)
หรือไม่
g(2)
หรือg(3)
กำลังเปิดใช้งานอยู่) ดังนั้นฉันจึงได้ลบมันในย่อหน้าแรก ขอบคุณสำหรับหัวขึ้น.
เมื่อทำการดีบักบรรทัดของรหัสนี่คือสถานการณ์ปกติ:
Eclipse มีคุณสมบัติการดีบักขั้นสูงอื่น ๆ แต่สิ่งเหล่านี้เป็นพื้นฐานขั้นพื้นฐาน
ขั้นตอนในจะขุดเป็นวิธีการโทร
ขั้นตอนมากกว่าจะดำเนินการบรรทัดและไปที่ถัดไป
คุณไม่สามารถอ่านรายละเอียดของวิธีการได้โดยใช้ขั้นตอน หากคุณต้องการข้ามบรรทัดปัจจุบันคุณสามารถใช้ขั้นตอนที่ผ่านมาได้จากนั้นคุณเพียงกดปุ่มF6หนึ่งครั้งเพื่อเลื่อนไปยังบรรทัดถัดไป และถ้าคุณคิดว่ามีบางสิ่งผิดปกติในวิธีการนั้นให้ใช้F5เพื่อตรวจสอบรายละเอียด
Step Intoนิพจน์ถัดไปของบรรทัดที่เลือกในปัจจุบันที่จะดำเนินการถูกเรียกใช้และการดำเนินการจะหยุดชั่วคราวที่บรรทัดที่สามารถใช้งานได้ถัดไปในวิธีที่เรียกใช้
Step Over บรรทัดที่เลือกในปัจจุบันจะถูกดำเนินการและหยุดชั่วคราวในบรรทัดที่สามารถเรียกทำงานต่อไปได้