2011-08-25 52 views
90

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ư:Làm thế nào để sử dụng điểm ngắt có điều kiện trong Eclipse?

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 breakpoint trên dòng với mũi tên nhưng muốn nó để kích hoạt chỉ khi nào:

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

Trả lời

143

Đặt breakpoint của bạn. Kích chuột phải vào hình ảnh breakpoint vào lề và chọn Breakpoint Thuộc tính:

enter image description here

điều kiện Cấu hình như bạn thấy phù hợp:

enter image description here

+9

Eclipse mới nhất bao gồm các tùy chọn này trực tiếp trong Chế độ xem điểm ngắt. –

+1

Cảm ơn bạn! tiết kiệm rất nhiều thời gian của tôi! :) – MozenRath

+3

Wow! Tôi đã sử dụng: 'if (condition) {System.out.println (" debug ");}' và phá vỡ lệnh in trong nhiều năm. – Cruncher

3

Từ Eclipsepedia về cách thiết lập một breakpoint 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 trình đơn ngữ cảnh trên điểm ngắt ở lề biên tập viên bên trái hoặc trong chế độ 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 điều kiện Java tùy ý, chẳng hạn như list.size()==0. Bây giờ, mỗi khi điểm ngắt là đạt được, biểu thức được đánh giá trong ngữ cảnh của điểm ngắt thực thi và điểm ngắt được bỏ qua hoặc được vinh danh, tùy thuộc vào về kết quả của biểu thức.

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

+0

Liên kết của bạn không có mã hoá '? '. Hãy thử [this] (http://wiki.eclipse.org/FAQ_How_do_I_set_a_conditional_breakpoint%3F). – KomodoDave

+0

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

9

Thực hiện một breakpoint bình thường trên dòng doIt(tablist[i]);

Kích chuột phải -> Properties

Kiểm tra 'có điều kiện'

Nhập tablist[i].equalsIgnoreCase("LEADDELEGATES")

+0

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

+3

@CajunLuke Giống như ở đây. Tôi chỉ thử nó với một 'cuối cùng T []' (loại không chung chung) và nhận được 'Điểm ngắt có điều kiện có lỗi biên dịch'. Ngạc nhiên thay, tình trạng của tôi là 'bond == null' và hộp thoại Reason in the error là' invalid AssignmentOperator'. _sigh_ Đôi khi Eclipse hoạt động giống một con người 12 tuổi hơn 12 năm tuổi. – KomodoDave

2

1.Tạo một lớp

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 phía bên trái củaSystem.out.println (tablist [i]);trong Eclipse -> chọn Chuyển đổi Breakpoint

3.Nhấp chuột phải vàođiểm chuyển đổi->chọntính Breakpoint

4.Kiểm traConditionalCheck Box->ghitablist [i] .equalsIgnoreCase ("amm")trong lĩnh vực văn bản->Bấm vàoOK

5.Nhấp chuột phải vào lớp->gỡ lỗi Như->Java Application

Các vấn đề liên quan