Tôi muốn gỡ lỗi toàn bộ dòng chương trình Java. Sự khác biệt giữa F5(bước vào) và F6(bước qua) trong nhật thực là gì?
Tôi muốn gỡ lỗi toàn bộ dòng chương trình Java. Sự khác biệt giữa F5(bước vào) và F6(bước qua) trong nhật thực là gì?
Câu trả lời:
Xem xét đoạn mã sau với con trỏ lệnh hiện tại của bạn (dòng sẽ được thực thi tiếp theo, được chỉ định bởi ->
) tại f(x)
dòng trong g()
, đã được gọi bởi g(2)
dòng trong 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
}
}
Nếu bạn bước vào thời điểm đó, bạn sẽ di chuyển đến println()
dòng trong f()
, bước vào lệnh gọi hàm.
Nếu bạn đã bước qua tại thời điểm đó, bạn sẽ di chuyển đến f(1)
dòng trong g()
, bước qua lệnh gọi hàm.
Một tính năng hữu ích khác của trình gỡ lỗi là bước ra hoặc bước trở lại. Trong trường hợp đó, một bước hoàn trả về cơ bản sẽ đưa bạn qua chức năng hiện tại cho đến khi bạn quay trở lại một cấp. Nói cách khác, nó sẽ bước qua f(x)
và f(1)
, sau đó sao lưu ra các chức năng gọi kết thúc ở g(3)
trong main()
.
Nhật thực (ít nhất là Europa, là thứ duy nhất tôi có sẵn tại thời điểm này) sử dụng F5cho step into
, F6cho step over
và F7cho step return
.
g(3)
; trong main()
" <- Bạn có cho rằng bạn đã đến vị trí hiện tại của mình từ đó g(2)
và một khi bạn đã hoàn tất, bạn quay lại dòng tiếp theo g(3)
?
g(2)
hoặc g(3)
hiện đang hoạt động) vì vậy tôi đã xóa nó trong đoạn đầu tiên. Cảm ơn cho những người đứng đầu lên.
Khi gỡ lỗi các dòng mã, đây là các tình huống thông thường:
Eclipse có các tính năng sửa lỗi nâng cao khác, nhưng đây là những nguyên tắc cơ bản.
bước vào sẽ đào sâu vào các cuộc gọi phương thức
bước qua sẽ chỉ thực hiện dòng và đi đến cái tiếp theo
Bạn không thể xem chi tiết về phương pháp bằng cách sử dụng bước trên. Nếu bạn muốn bỏ qua dòng hiện tại, bạn có thể sử dụng bước qua, sau đó bạn chỉ cần nhấn F6một lần duy nhất để chuyển sang dòng tiếp theo. Và nếu bạn nghĩ rằng đôi khi có sai trong phương pháp, hãy sử dụng F5để kiểm tra các chi tiết.
Bước vào Biểu thức tiếp theo trên dòng hiện được chọn sẽ được thực thi và lệnh thực thi bị đình chỉ ở dòng thực thi tiếp theo trong phương thức được gọi.
Bước qua Dòng được chọn hiện tại được thực thi và tạm dừng trên dòng thực thi tiếp theo.