Bagaimana cara menggunakan breakpoint bersyarat di Eclipse?

117

Saya ingin tahu bagaimana menempatkan breakpoint bersyarat di Eclipse. Saya memiliki kode seperti:

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

Sekarang saya ingin meletakkan breakpoint pada garis dengan panah tetapi ingin memicu hanya jika:

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

Jawaban:

179

Letakkan breakpoint Anda. Klik kanan gambar breakpoint pada margin dan pilih Breakpoint Properties :

masukkan deskripsi gambar di sini

Konfigurasikan kondisi sesuai keinginan Anda:

masukkan deskripsi gambar di sini

ZenMaster
sumber
9
Eclipse terbaru menyertakan opsi ini secara langsung di Breakpoints View juga.
Michael Brewer-Davis
1
Terima kasih Mate! menghemat banyak waktu saya! :)
MozenRath
8
Wow! Saya telah menggunakan: if(condition){System.out.println("debug");}dan melanggar pernyataan cetak selama bertahun-tahun.
Cruncher
5
Jangan lupa untuk MENGHAPUS ;di bagian akhir - saya mendapat kesalahan saat memasukkannya.
modulitos
Terima kasih banyak! Ini sangat membantu.
hfontanez
11

Buat breakpoint normal di doIt(tablist[i]);telepon

Klik kanan -> Properties

Centang 'Conditional'

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

Garrett Hall
sumber
Apakah Anda tidak membutuhkan titik koma di akhir ekspresi? Saya hanya bisa mendapatkan breakpoint bersyarat untuk bekerja jika saya menambahkan titik koma (dan bahkan tidak terlalu sering).
Cajunluke
3
@CajunLuke Sama di sini. Saya baru saja mencobanya dengan final T[](tipe non-generik) dan mendapatkan Conditional breakpoint has compilation error(s). Anehnya, kondisi saya bonds==nulldan Alasan di dialog error adalah invalid AssignmentOperator. sigh Kadang-kadang Eclipse berperilaku lebih seperti manusia berusia 12 tahun daripada perangkat lunak berusia 12 tahun.
KomodoDave
3

Dari Eclipsepedia tentang cara menyetel breakpoint bersyarat:

Pertama, tetapkan breakpoint di lokasi tertentu. Kemudian, gunakan menu konteks pada breakpoint di margin editor kiri atau dalam tampilan Breakpoints dalam perspektif Debug, dan pilih properti breakpoint. Di kotak dialog, centang Aktifkan Kondisi, dan masukkan kondisi Java arbitrer, seperti list.size()==0. Sekarang, setiap kali breakpoint tercapai, ekspresi dievaluasi dalam konteks eksekusi breakpoint, dan breakpoint diabaikan atau dihormati, bergantung pada hasil ekspresi.

Ketentuan juga dapat dinyatakan dalam atribut breakpoint lainnya, seperti jumlah klik.


sumber
Tautan Anda tidak ?dikodekan. Coba ini .
KomodoDave
Terima kasih, hargai itu
2

1. Buat kelas

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. Klik kanan di sisi kiri System.out.println (tablist [i]); di Eclipse -> pilih Toggle Breakpoint

3. Klik kanan pada toggle point -> pilih properti Breakpoint

4. Centang Kotak Centang Bersyarat -> tulis daftar tab [i] .equalsIgnoreCase ("amm") di kolom teks -> Klik OK

5. Klik kanan pada class -> Debug As -> Java Application

Prashant Sahoo
sumber