Cách sử dụng điểm ngắt có điều kiện trong Eclipse?


117

Tôi muốn biết cách đặt một điểm ngắt có điều kiện trong Eclipse. Tôi có một mã như:

public static void doForAllTabs(String[] tablist){
    for(int i = 0; i<tablist.length;i++){
-->        doIt(tablist[i]);
    }
}

Bây giờ tôi muốn đặt một điểm ngắt trên dòng có mũi tên nhưng chỉ muốn nó kích hoạt khi:

tablist[i].equalsIgnoreCase("LEADDELEGATES");

Câu trả lời:


179

Đặt điểm ngắt của bạn. Bấm chuột phải vào hình ảnh điểm ngắt trên lề và chọn Thuộc tính điểm ngắt :

nhập mô tả hình ảnh ở đây

Định cấu hình điều kiện khi bạn thấy phù hợp:

nhập mô tả hình ảnh ở đây


9
Eclipse mới nhất cũng bao gồm các tùy chọn này ngay trong Dạng xem Điểm ngắt.
Michael Brewer-Davis

1
Cảm ơn Mate! đã tiết kiệm rất nhiều thời gian của tôi! :)
MozenRath

8
Chà! Tôi đã sử dụng: if(condition){System.out.println("debug");}và phá vỡ báo cáo in trong nhiều năm.
Cruncher

5
Đừng quên OMIT ;ở cuối - Tôi đã gặp lỗi khi đưa vào.
modulitos

Cảm ơn rất nhiều! Điều này rất hữu ích.
hfontanez

11

Tạo một điểm ngắt bình thường trên doIt(tablist[i]);dòng

Nhấp chuột phải -> Thuộc tính

Chọn 'Có điều kiện'

Đi vào tablist[i].equalsIgnoreCase("LEADDELEGATES")


Bạn không cần dấu chấm phẩy ở cuối biểu thức? Tôi chỉ có thể làm cho các điểm ngắt có điều kiện hoạt động nếu tôi thêm dấu chấm phẩy (và thậm chí không thường xuyên).
Cajunluke

3
@CajunLuke Tương tự ở đây. Tôi vừa thử nó với một final T[](loại không chung chung) và nhận được Conditional breakpoint has compilation error(s). Thật thú vị, tình trạng của tôi là bonds==nullvà Lý do trong hộp thoại lỗi là invalid AssignmentOperator. thở dài Đôi khi Eclipse hoạt động giống một con người 12 tuổi hơn là một phần mềm 12 tuổi.
KomodoDave

3

Từ Eclipsepedia về cách đặt điểm ngắt có điều kiện:

Đầu tiên, đặt điểm ngắt tại một vị trí nhất định. Sau đó, sử dụng menu ngữ cảnh trên điểm ngắt ở lề biên tập bên trái hoặc trong dạng xem Điểm ngắt trong phối cảnh Gỡ lỗi và chọn thuộc tính của điểm ngắt. Trong hộp thoại, chọn Bật Điều kiện và nhập một điều kiện Java tùy ý, chẳng hạn nhưlist.size()==0 . Bây giờ, mỗi khi đạt đến điểm ngắt, biểu thức được đánh giá trong ngữ cảnh thực hiện điểm ngắt và điểm ngắt bị bỏ qua hoặc được tôn trọng, tùy thuộc vào kết quả của biểu thức.

Các điều kiện cũng có thể được thể hiện bằng các thuộc tính điểm ngắt khác, chẳng hạn như số lần truy cập.


Liên kết của bạn không được ?mã hóa. Hãy thử điều này .
KomodoDave

Cảm ơn, đánh giá cao nó

2

1. Tạo một lớp học

public class Test {

 public static void main(String[] args) {
    // TODO Auto-generated method stub
     String s[] = {"app","amm","abb","akk","all"};
     doForAllTabs(s);

 }
 public static void doForAllTabs(String[] tablist){
     for(int i = 0; i<tablist.length;i++){
         System.out.println(tablist[i]);
    }
  }
}

2. Nhấp chuột phải vào bên trái của System.out.println (tablist [i]); trong Eclipse -> chọn Toggle Breakpoint

3. Nhấp chuột phải vào điểm chuyển đổi -> chọn thuộc tính Điểm ngắt

4. Đánh dấu vào Hộp kiểm có điều kiện -> viết danh sách tab [i] .equalsIgnoreCase ("amm") trong trường văn bản -> Nhấp vào OK

5. Nhấp chuột phải vào class -> Debug As -> Java Application

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.